ViewController层次结构

时间:2012-10-21 15:28:53

标签: iphone objective-c ios

我有这样的场景: 我有MovieViewController它作为我的应用程序的介绍(它是我的故事板中的初始视图控制器)。它通过以下方式转到另一个名为MenuViewController的视图控制器:

  • 电影结束
  • 检测到触摸

所以序列现在是这样的: MovieViewController -----> MenuViewController ---> (然后对应不同视图的三个按钮)

根据我在这里的旧问题:Warning about window hierarchy

我对应答案并编辑我的代码,但仍然在我的调试器中发生错误。

  

警告:尝试出现    谁的观点不在窗口   层次!

它仍会多次出现,是否有办法在显示MenuViewController后使MovieViewController主视图生效?电影结束/显示后,或者解除/删除它。

感谢您的导游。

2 个答案:

答案 0 :(得分:0)

为了尝试回答这个问题,我将假设当你说

  

主视图

你的意思是根视图。

一个简单的解决方案是,当您启动应用程序时,会创建一个管理视图控制器堆栈的导航控制器。此导航控制器有一个根控制器,您应将其设置为MenuViewController(这应该是第一个加载的视图控制器),因为这是您想要返回的控制器。您可以在MovieViewController MenuViewController之后以MovieViewController方式显示MenuViewController视图,{{1}}将被视为{{1}}。

另一方面,在iOS编程中提供启动画面通常不是一个好习惯,其中启动画面是一个没有功能价值的屏幕,除了在加载时显示主视图并显示有关信息该应用程序。

答案 1 :(得分:-1)

您可以制作MenuViewController初始视图控制器,并在加载后立即调用:

[self presentModalViewController:MovieViewController animated:NO];

然后,当您想要从屏幕中删除MovieViewController时,请致电:

[self dismissModalViewControllerAnimated:YES];
MovieViewController中的