2012-11-06 49 views
0

我有3個視圖控制器,vcAvcBvcCiOS - 在導航控制器上嵌入viewController

我在vcA並按vcB。有用。

當我嘗試從vcB推時,它失敗。我看到vcBself.navigationController財產是nil

閱讀關於這個屬性的幫助文件,我看到:

這個屬性是零,如果視圖控制器不是嵌入導航控制器內。

因此,vcB可能不在導航控制器內。

我的問題是,是self.navigationController pushViewController:vcB ...足以在導航控制器上嵌入vcB?如果不是,我如何在導航控制器上嵌入vcB

注意:vcA是基於Interface Builder構建的,vcBvcC是以編程方式創建的。

+0

你能發表一些代碼嗎?從概念上講,這聽起來像你已經做對了。我假設'vcA'最初是通過被推入導航控制器的視圖堆棧來顯示的。 –

+0

好的,但我的問題是這樣的:我有導航控制器上嵌入了vcA,這是在界面生成器中完成的。現在,我如何在導航控制器上嵌入第二個視圖控制器(vcB)?這個vcB是在vcA內部以編程方式創建的。 – SpaceDog

+0

是的,你可以使用pushViewController方法來推送其他控制器,但是顯示你的代碼來看看問題是什麼。 – samir

回答

0

3天后我終於解決了這個問題。

這個問題是,我的一個viewControllers和navigationController分別是連接到委託的rootViewController插座。 謝謝Xcode沒有指出!對不起,但我不得不再次說,我現在比以往更討厭Xcode 4。 https://stackoverflow.com/a/13280574/316469

感謝球員:

這個問題的解決方案,與另一個問題,我可以在這裏可以看到有關。

0

嘗試定義的viewController INT是這樣的:

在VCA

定義VCB
@property (nonatomic, strong) UIViewController *vcB; 

@synthesize vcB = _vcB; 

然後把它放在棧。

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

定義VCC在VCB

@property (nonatomic, strong) UIViewController *vcC; 

@synthesize vcC = _vcC; 

然後將其推上堆疊。

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

爲了將vcB添加到導航控制器的視圖堆棧中,您不需要在'vcA'中維護'vcB'(通過屬性)的強引用。 –

相關問題