当通过Storyboard以模态方式呈现UINavigationController时,它的rootViewController与它没有任何关联

时间:2012-09-18 07:38:05

标签: ios uistoryboard

我的故事板看起来像这样: enter image description here

第一部分是完美的,问题是当我使用“测试模态”按钮以模态方式显示第二个NavigationController时,正确设置为具有rootViewController - 没有建立连接。

意思是,我知道 UINavigationController就在那里(从UIWindow的rootViewController开始查询所有控制器),我的控制器也被加载了,但是navigationController是nil,parentViewController是nil - 我没办法可以访问UINavigationController(因此无法自定义顶部工具栏)

如果我检查第二个UINavigationController上的“是初始视图控制器”,它可以工作(但显然这不是我想要的)。我相信这可能是一个UIKit错误。或者我做错了吗?

2 个答案:

答案 0 :(得分:4)

是否正确实现了prepareForSegue方法? 这就是我在我的应用程序中实现prepareForSegue方法的方法。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"yourConnectionName"]) {
UINavigationController *navController = segue.destinationController;
YourViewControllerClass *controller = (YourViewControllerClass *)navController.topViewController;
controller.delegate = self;
}
}

答案 1 :(得分:2)

我终于找到了这个。

我没有在我的初始化中调用[super initWithCoder:decoder]。这使得一些UIViewController变量未初始化。改变后,它就像一个魅力。