2011-07-19 66 views
0

我在应用程序didFinishLaunchingWithOptions中有以下代码,我想为用户登录提供模式视图控制器。如何在应用程序启动时呈现模态视图?

LoginViewController_iPhone *loginViewController=[[LoginViewController_iPhone alloc]initWithNibName:@"LoginViewController_iPhone" bundle:nil]; 
UINavigationController *loginNavigationController=[[UINavigationController alloc]initWithRootViewController:loginViewController]; 
loginNavigationController.modalPresentationStyle=UIModalPresentationFullScreen; 
[self.window.rootViewController presentModalViewController:loginNavigationController animated:NO]; 

[loginViewController release]; 
[loginNavigationController release]; 

但是,我得到的只是一个空白的白色屏幕。如果我替换以下内容

self.window.rootViewController=loginNavigationController; 

登录屏幕显示正确。当应用程序刚刚启动时,没有其他视图控制器分配给rootViewController属性。我是否需要分配另一个视图控制器才能使其工作?

回答

3

是的。您需要为窗口的rootViewController属性分配一些内容以调用其方法presentModalViewController

+0

工程。谢谢。那是我怀疑的。 – ChrisP

+0

只是一个普通的事情,你试图调用一个方法在一个没有的对象上。 –

0
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:LoginViewController]; 

navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:navController animated:NO]; 

您可以在视图的viewDidLoad中进行设置,该视图会在应用程序启动后立即加载。因此,只要登录成功,您可以将其弹出,然后您就可以准备好已加载的视图。

+0

尽管这种方法可行,但我选择了第一个答案作为通过委托给AppDelegate的回调,让我在登录后有更多的控制权。 – ChrisP

相关问题