iOS - 在navigationController上嵌入viewController

时间:2012-11-06 15:07:54

标签: ios uiviewcontroller uinavigationcontroller uikit

我有3个视图控制器,vcAvcBvcC

我正在vcA并推送vcB。它有效。

当我尝试从vcC推送vcB时,它会失败。我发现self.navigationController的{​​{1}}属性为vcB

阅读有关此属性的帮助文件,我看到了:

  

如果视图控制器未嵌入导航控制器中,则此属性为nil。

因此,nil可能不在导航控制器内。

我的问题是,vcB是否足以在导航控制器上嵌入self.navigationController pushViewController:vcB ...?如果没有,我如何在导航控制器上嵌入vcB

注意:vcB构建于Interface Builder之上,vcAvcB是以编程方式创建的。

2 个答案:

答案 0 :(得分:0)

尝试以这种方式定义viewController:

在vcA中定义vcB

@property (nonatomic, strong) UIViewController *vcB;

@synthesize vcB = _vcB;

然后把它推到堆栈上。

[self.navigationController pushViewController:self.vcB animated:YES];

在vcB中定义vcC

@property (nonatomic, strong) UIViewController *vcC;

@synthesize vcC = _vcC;

然后把它推到堆栈上。

[self.navigationController pushViewController:self.vcC animated:YES];

答案 1 :(得分:0)

3天后我终于解决了这个问题。

这个问题是我的一个viewControllers和navigationController 连接到委托的rootViewController插座。 感谢Xcode没有指出这一点!很抱歉,我不得不再次说我现在比以往更讨厌Xcode 4.

这个问题的解决方案与我遇到的另一个问题有关,可以在这里看到:https://stackoverflow.com/a/13280574/316469

谢谢你们。