我是新来的iOS,想知道如何正确实现视图控制器卸载/重新加载。卸载/重新加载视图控制器的正确方法
现在我的应用程序有一个NavigationController,它具有设置为根视图控制器的MainMenuViewController(自定义视图控制器)。在应用程序生命周期中,新的ViewController在导航控制器上按下/弹出。这工作正常,第一次将它们推入堆栈时,会启动相应的ViewController(来自NIB)。
但是,我现在要卸载一个特定的ViewController,当它被弹出时,然后重新加载它时再次推动它。
我已经添加了一个[self release]
该ViewControllers viewDidDisappear:
它卸载,但是当我尝试再次推视图,我得到一个消息发送到dealloc'ed实例错误和崩溃。因此,我的问题是:
- 这是一个正确的方式来卸载一个弹出的ViewController?
- 如何检查给定的ViewController是否加载?
- 如何强制重新加载?用
loadWithNib:
,然后推入导航堆栈?
问候,
彼得
感谢对你的答案,但你给出的例子是我的情况太简单了 - 我要决定哪些viewcontrollers到的dealloc,当(有时,甚至当它被弹出,我希望它保存它的状态,所以当用户返回时,它会立即引起)。现在我已经解决了这个问题,并设置了MainView控制器作为通知中心的观察者 - 而其他视图控制器发布通知,如果他们想要被解除分配或从堆栈中弹出。 – 2011-04-15 05:00:29
我真的不知道你在做什么,但我仍然会推荐阅读和理解文档。根据需要开始简单并增加复杂性,事情正在发挥作用。祝你好运。 – XJones 2011-04-15 06:16:00