我想懒惰地将自定义UIViewController作为子项添加到也自定义的其他UIViewController中。我尝试像这样在viewDidAppear:animated:中创建它:

- (void)viewDidAppear:(BOOL)animated {
  if (hostingUI == nil) { // `hostingUI` is an ivar
    hostingUI =
      [[UIStoryboard storyboardWithName:@"MainStoryboard"
                                 bundle:[NSBundle mainBundle]]
        instantiateViewControllerWithIdentifier:@"hosting-ui"];
    [self addChildViewController:hostingUI];
  }
}


我上面的ivar hostingUI乍一看似乎很正常,但是随后我注意到它的所有成员都是nil(在调用addChildViewController后进入LLDB)。



显然,父控制器中没有任何显示,而且我还缺少有关instantiateViewControllerWithIdentifier的工作方式的信息。

最佳答案

[myStoryboard instantiateViewControllerWithIdentifier:@"Some name"]可让您从StoryBoard实例化特定页面,其中涵盖了所有内容(segueIBOutletsIBActions)。但是,如果应该将此特定视图嵌入NavigationController中,则必须使用其rootViewController实例化该视图。

关于ios - StoryboardInstantiateViewControllerWithIdentifier返回空的 View Controller ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20072568/

10-10 18:37