2011-09-21 62 views
0

[对不起我弱英语]问题navigationController

我有一些方法来创建并展示了一些新的观点CONTROLER(我 当前视图CONTROLER级别的顶部)

- (void) switchToDifficultyMenu 
{ 
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

DifficultyMenuController *difficultyMenuController = [[DifficultyMenuController alloc] init]; 

    NSLog(@"navigation controller %@" , self.navigationController); //navContr is nil 

[self.navigationController pushViewController: difficultyMenuController animated: NO]; 

[difficultyMenuController release]; 
[pool release]; 


} 

它工作时我火了,例如从水龙头下活动我目前 视图控制器上,但是当我的当前视图CONTROLER 负载(这是一些需要一种)在其-viewDidLoad的navigationController ID EST是 为零当我尝试立即调用它

我怎样才能使它发挥作用,多TNX

回答

2

直到你不把你的UIViewControllerUINavigationController,该navigationController属性将为空。在推送之前总是调用viewDidLoad方法。因此在viewDidLoad中,无法访问此属性。

+0

很多tnx,如果是这样的话,那么我可以尽快在我以前的viewcontroler创建开始时启动我的方法的地方(我想在堆栈中查看第一个viewcontroler之后,堆栈中的第三个viewcontroler (在堆栈中的第二个之前),第二个在第三个之后弹出:/我知道我可能应该重建'架构',但第一个可以更快更容易 – fir

+1

在这种情况下,您应该尝试使用'viewWillAppear:'method。'viewDidAppear:'方法仍然可以工作,但我认为它没有你想要的效果,我认为你有5分钟的时间来尝试它们并且看到,它们对应您的需求。 –