2013-12-10 30 views
0

我試圖呈現一個視圖控制器模態使用presentViewController:動畫:完成:(iOS 7)內viewDidLoad,但當熱點啓用它不起作用。我的代碼如下所示:PresentViewController呈現視圖:動畫:完成:不工作時presentViewController:動畫:完成:熱點啓用

UINavigationController *navController = [self.storyboard instantiateViewControllerWithIdentifier:@"someViewController"]; 

[self presentViewController:navController animated:NO completion:nil]; 

有沒有人知道爲什麼?謝謝!

回答

3

不要將其呈現在viewDidLoad中,您可以將其加載到viewDidAppear方法中。

-(void)viewDidAppear:(BOOL)animated 
{ 
    UINavigationController *navController = [self.storyboard instantiateViewControllerWithIdentifier:@"someViewController"]; 
    [self presentViewController:navController animated:NO completion:nil]; 
} 

只是爲了額外的上下文:你不應該叫presentViewController在viewDidLoad中,因爲控制器是不可見的,但(可能甚至在控制器層次,但我不知道),因而不能呈現另一個控制器。 - @hukir。

+1

只是爲了額外的上下文,你不應該在viewDidLoad中調用presentViewController,因爲控制器還不可見(可能不在控制器層次結構中,但我不確定),因此無法顯示其他控制器。 – hukir

+0

是的,你是對的,我結束了使用viewWillAppear,因爲我需要呈現沒有動畫的視圖,並在viewDidAppear做,它的「父」視圖顯示爲毫秒。 –

+0

此外,如果有人發現這有幫助,我需要使用布爾來知道視圖控制器是否已經呈現或不。謝謝,我會接受你的回答@Viruss –

相關問題