我想懒惰地将自定义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
的工作方式。
答案 0 :(得分:1)
[myStoryboard instantiateViewControllerWithIdentifier:@"Some name"]
将允许您从storyBoard实例化一个特定页面,其中包含所有内容(进/出segue
,IBOutlets
,IBActions
)。但是,如果此特定视图应嵌入NavigationController
,则您必须使用rootViewController
实例化此视图。