2012-02-02 67 views
0

无论何时运行应用程序,我的应用程序都会提供一个模态视图控制器(密码输入表单)。我存在于两个应用委托方法的视图控制器:为什么在applicationDidFinishLaunchingWithOptions中不显示模式视图控制器?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [self.window.rootViewController presentModalViewController:self.passcodeViewController animated:NO]; 
    //... 
    return YES; 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    if (!self.passcodeViewController.view.window) { 
     [self.window.rootViewController presentModalViewController:self.passcodeViewController animated:NO]; 
    } 
} 

呼叫呈现在application:didFinishLaunchingWithOptions:方法不呈现视图控制器,其中如在applicationDidBecomeActive:呼叫确实模态视图控制器。为什么是这样?

编辑:我想提一提,每下面的评论,我是用故事板和self.window.rootViewController确确实指向一个对象(基本上,它不是零)

+0

rootViewController如何分配给窗口? MainWindow.xib中?故事情节?我的猜测是,self.window或self.window.rootViewController尚未在didFinishLaunchingWithOptions中分配。 – jsd 2012-02-02 23:29:50

+0

故事板 - 我忘了提及self.window.rootViewController确实指向视图控制器,即。如果主要的笔尖(或者在我的情节故事板)已经被加载,它不是零 – 2012-02-03 00:19:42

回答

0

从在UIApplicationDelegate协议手册参考:

您的应用程序已经启动,其主要笔尖 文件加载后调用它。在调用此方法时,您的应用程序处于非活动状态。

+0

。为什么然后调用在这个视图之上添加另一个视图不起作用? – 2012-02-03 00:21:22

+0

嗯所以问题不在于当你想要的方法没有被调用?我想你已经尝试添加一个'NSLog'语句来查看它的调用时间。视图不会被呈现的原因是因为NavigationController不是当前的响应者,或者可能它正在被呈现,但是在视图的另一层或层级中。 – 2012-02-03 04:24:19

相关问题