我有一个很大的屏幕应用程序,所有的排列在一个层次结构中,顶部有一个UITabBarController,下面是UINavigationControllers,然后是下面的UIView控制器,也许有一个模式控制器在某个地方引发了很好的测量。如何让我的iPhone应用程序以特定屏幕显示?
允许用户从列表中选择一个开始屏幕。一旦选择,下次启动应用程序将从指定的屏幕开始,所有的导航将工作,就像他们自己在那里导航一样。
由于我无法继承UITabBarController和UINavigationController,因此我无法添加任何ivars来设置任何初始导航信息。
那么,在这些条件下显示正确的视图控制器的屏幕,并且快速执行操作的最佳方式是什么?
一个有趣的建议,但我认为会有问题。我不需要或希望我的整个层次结构保存和恢复,只需要控制器的状态。如果我这样做,它会保存的意见呢? – 2009-10-25 00:43:42
通过实施NSCoder,您负责编写您需要的内容,并重新初始化您需要的内容。这是一种节省应用程序状态的快速方法,而不是视图本身。它为您提供了一种安全可靠地重新加载视图控制器等的方法......无需对NSUserDefaults进行100次调用。 – coneybeare 2009-10-25 04:49:53
coney的一个问题 - 我按照我在答案中列出的方式进行操作的部分原因是因为我可以在用户前进时保存应用程序的状态(为导航控制器设置委托,实现navigationController:willShowViewController:动画或didShow)。用你的方法,在applicationWillTerminate中是否有任何危险不会被调用或不会完成? – bpapa 2009-10-25 14:04:47