2013-12-10 26 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 –

相关问题