【问题标题】:iOS: Programmatically calling Container ViewiOS:以编程方式调用容器视图
【发布时间】:2013-10-09 06:45:23
【问题描述】:

在调用Main 视图控制器之前,我将通过委托通知Main 视图控制器是否在Container View 中调用TVC1TVC2

问题:如何以编程方式告诉Main View Controller 中的Container View 调用TVC1TVC2

TVC1 *tvc1 = [self.storyboard instantiateViewControllerWithIdentifier:@"TVC1"]; 
TVC2 *tvc2 = [self.storyboard instantiateViewControllerWithIdentifier:@"TVC2"];

在加载 Main 视图控制器时,我在哪里以及如何告诉 Container Viewload 这些控制器之一?

【问题讨论】:

    标签: ios subviews uicontainerview


    【解决方案1】:

    通过委托,您可以知道将添加哪个视图,因此您可以使用viewDidLoad 中的任何布尔值 n 来管理它,您可以通过放置一个条件来加载该视图

    在主控制器中:

    bool isFirstView;
    
    -(void)delegate:(bool)isFirst
    {
      isFirstView = isFirst;
    }
    
    // in viewDidLoad 
    )
    (void)viewDidLoad
    {
      if(isFirstView)
      {
        TVC1 *tvc1 = [self.storyboard instantiateViewControllerWithIdentifier:@"TVC1"]; 
      }
      else
      {
        TVC2 *tvc2 = [self.storyboard instantiateViewControllerWithIdentifier:@"TVC2"];
      }
    }
    

    【讨论】:

    • 我正在为代码苦苦挣扎。我如何告诉容器视图它应该加载哪个控制器? TVC1 *tvc1 = [self.storyboard instantiateViewControllerWithIdentifier:@"TVC1"]; TVC2 *tvc2 = [self.storyboard instantiateViewControllerWithIdentifier:@"tvc2"];现在我在哪里以及如何加载这些控制器?
    • 这取决于你如果你想使用情节提要创建它,那么你必须在导航控制器上创建一个实例,你可以通过获取你想要的视图来调用这个 tvc1 n tvc2 in view didload 方法使用 true 或 false 的任何布尔值加载
    • 如何在容器视图中自动调用该视图?
    • 你可以使用这个视图控制器的引用来执行segue
    【解决方案2】:

    您可以通过使用将管理子视图控制器的自定义容器视图控制器来做到这一点。

    有一个很好的教程:

    http://sandmoose.com/post/35714028270/storyboards-with-custom-container-view-controllers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-05
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 2013-04-14
      相关资源
      最近更新 更多