2011-08-21 73 views
0

顯示我有一個UIViewController用這種方法:presentModalViewController不從獨立的UIViewController

-(void)prepareToShowVault { 

... 

UINavigationController *passcodeNavigationController = [[UINavigationController alloc] initWithRootViewController:passcodeViewController]; 
     [self.navigationController presentModalViewController:passcodeNavigationController animated:YES]; 
     [passcodeViewController release]; 
     [passcodeNavigationController release]; 
} 

當從這個UIViewController中的另一種方法調用,它工作得很好。但是當從另一個UIViewController調用時,這個方法會觸發,但代碼不會顯示一個新的modalViewController,大概是因爲具有上述方法的UIViewController不是活動的。我怎樣才能做這項工作?

回答

1

UIViewController文檔它說

modalViewController

爲有效的模態控制器視圖,也就是說,其對由接收器所管理的視圖的頂部暫時顯示的視圖。 (只讀)

所以我猜測,除非你的視圖控制器是活動的,否則你將看不到它所呈現的模態視圖。

因此,您需要在該視圖控制器中,或將該方法添加到其他視圖控制器,以及可能使用您添加到兩者的類別。

-1

你爲什麼要推導航控制器?導航控制器已經存在。不要創建導航控制器。我想你應該僅僅是doing-

[self.navigationController presentModalViewController:passcodeViewController animated:YES]; 

HTH,

阿克沙伊