【发布时间】:2020-02-08 13:28:02
【问题描述】:
一周后我打开了我的项目,似乎对于我在StoryBoard 中创建的所有新UIViewController,instantiateViewControllerWithIdentifier 的返回值为零。已经在项目中的所有ViewControllers 工作正常。
GCHConnectViewController* gchCVC = [self.storyboard instantiateViewControllerWithIdentifier:@"GchConnect"];
navigationController.viewControllers = @[gchCVC];
第一行返回nil,我最初的想法是self.storyboard返回nil,所以我尝试了这个并设置了断点。
if (self.storyboard != nil) {
GCHConnectViewController* gchCVC = [self.storyboard instantiateViewControllerWithIdentifier:@"GchConnect"];
navigationController.viewControllers = @[gchCVC];
}
它进入 if 并在第二行崩溃..
我还正确添加了类和storyboard id。
如果我尝试加载另一个已经存在的ViewController,它可以工作,但不是新的。
似乎无法弄清楚问题所在。任何帮助表示赞赏。
我有一个导航抽屉。切换到其他 ViewController 除了带有标识符“GchConnect”的 ViewController(即 indexPath.section == 1 和 indexpath.row == 0 )有效。他们都在同一个故事板中
【问题讨论】:
-
您需要将一个视图推送到另一个视图控制器吗?
-
从使用故事板 id 中删除复选标记,然后使用
[UIStoryboard storyboardWithName:@"Main" bundle:nil]获取参考故事板 -
您是否无意中本地化了您的故事板,并仅添加了一个本地化版本的新视图控制器,而这不是您正在测试的当前版本?
-
取消选中情节提要 ID,然后尝试。它可能工作!而
navigationController.viewControllers语句将viewControllers 设置为导航控制器,通常用于初始化导航控制器。你应该把 viewcontroller 推到导航控制器上 -
在Module文本框内点击并按回车键。它可能会解决您的问题。
标签: ios objective-c uiviewcontroller