【问题标题】:problem with navigationController导航控制器的问题
【发布时间】:2011-09-21 09:01:38
【问题描述】:

[对不起我的英语不好]

我有一些方法可以创建和显示一些新的视图控制器(在我的 当前视图控制器级别)

- (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];  


}

它在我触发它时起作用,例如从我当前的点击事件中触发 视图控制器,但是当我尝试在当前视图控制器时立即调用它 在它的 -viewdidLoad 中加载(这是一些需要的)id est,navigationController 是 无

我怎样才能让它工作,很多tnx

【问题讨论】:

    标签: ios uiviewcontroller uikit


    【解决方案1】:

    除非您不将UIViewController 推送到UINavigationController,否则navigationController 属性将为空。 viewDidLoad 方法总是在推送之前调用。所以在viewDidLoad中,没有办法访问这个属性。

    【讨论】:

    • much tnx,如果是这样,那么在上一个视图控制器创建开始时,我可以在哪里尽快触发我的方法(我想在堆栈上的第一个视图控制器之后看到,堆栈上的第三个视图控制器(堆栈上的第二个之前)和第三个弹出后的第二个:/我知道我可能应该重建“架构”,但第一个可能会更快更容易
    • 在这种情况下,您应该尝试使用viewWillAppear: 方法。 viewDidAppear: 方法仍然有效,但我认为它没有您想要的效果。我认为您有 5 分钟的时间来尝试这两种方法,看看是否符合您的需求。
    猜你喜欢
    • 2012-06-11
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多