【问题标题】:How to access ViewController from Storyboard initialVC(ContainerView)如何从 Storyboard initialVC(ContainerView) 访问 ViewController
【发布时间】:2016-03-15 22:48:38
【问题描述】:

我遇到了小问题。我有故事板:

ContainerVC(with ContainerView) -(container is linked to)> - NavigationController -> LogInVC (with delegate).

我想访问那个 LogInVC

UIStoryboard *logIn = [UIStoryboard storyboardWithName:@"LogIn" bundle:nil];
LogInViewController *logInVc = [logIn instantiateInitialViewController];

这段代码让我可以访问 ContainerVC,但我无法设置委托。当我尝试使用时:

LogInViewController *logInVc = [logIn instantiateViewControllerWithIdentifier:NSStringFromClass([LogInViewController class])];

它让我可以访问 logInVc,但没有 Container 和 NavigationController(需要它们)。 如何在添加了 Container 和 Nav 控制器的情节提要中访问 LogInViewController?无论如何使用情节提要来做到这一点?或者我必须手动启动ContainerView,并将NavigationController中嵌入的LoginVC添加到Container中?

【问题讨论】:

    标签: ios objective-c delegates storyboard uicontainerview


    【解决方案1】:

    在您的 ContainerVC 的视图被加载后(例如在 viewDidLoad 中),您可以通过以下方式访问 LogInVC:

    UINavigationController *nav = [self.childViewControllers firstObject]; 
    UIViewController *loginVC = [nav.viewControllers firstObject];
    

    然后你可以用 loginVC 做任何你想做的事情,例如将它转换为 LogInViewController 并设置委托

    [(LogInViewController *)loginVC setDelegate:*delegate*];
    

    附言with [UIStoryboard storyboardWithName:@"LogIn" bundle:nil];您创建了新的故事板,如果您的应用程序从故事板开始,那么获取一些已经创建的视图控制器的故事板就足够了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-03
      • 2012-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      • 2018-01-14
      • 1970-01-01
      相关资源
      最近更新 更多