2011-07-19 63 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

相關問題