2014-03-04 94 views
0

这是我的应用程序是如何布局:警告:试图提出LastViewController上的UINavigationController谁的观点是不是在窗口层次

Storyboard layout

后,计时器在做我的倒数第二个视图控制器我运行此代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iPhone_Storyboard" bundle:nil]; 
LastViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"last"]; 
vc.value = numberValue; 
[self presentViewController:vc animated:YES completion:nil]; 

最后一个视图控制器呈现,但我收到此错误信息:

Warning: Attempt to present LastViewController on UINavigationController whose view is not in the window hierarchy! 

编辑:

我的新布局:

New storyboard layout

仍然得到同样的错误:(

+0

LastViewController是图像中的最后一个吗?它是孤立的吗?你有没有为它定义一个segue? – NeverHopeless

+0

@NeverHopeless是的。我继续使用我的答案 –

回答

1

视图控制器的看法出去窗口的视图层次的,当它不再显示。这意味着您已经在导航控制器上显示了另一个视图控制器,并且它不在视图层次结构中。当您的计时器滴答时,您尝试在导航控制器的顶部显示视图控制器。

在故事板中,您有两个导航控制器和一个模态演示文稿segue。很可能你已经在第一个中提交了第二个,然后尝试将最后一个视图控制器放在第一个上。

如果您希望将最后一个视图控制器显示在最顶层的视图控制器上,则需要跟踪显示哪个视图控制器。这是一项艰巨的任务,并且我建议你考虑一个更简单的视图控制器演示模型的小设计更改,或者考虑几个windows模型,其中最后一个视图控制器完全显示为一个新窗口。

+0

中的代码我尝试删除第二个导航控制器,并在第二个和第三个视图控制器之间推入segue。我仍然得到错误。 –

+0

请参阅我的编辑我的新布局。 –

+0

@AbdullahShafique如果您以模态方式呈现视图控制器,您将获得相同的结果。您删除了导航控制器,但显示了另一个视图控制器。视图控制器是否为导航控制器无关紧要。 –

相关问题