我在更改显示的视图时遇到问题。
我的应用包含2个视图控制器。一个音频播放器和一个约。 音频视图控制器永远不会被释放,而第二个音频控制器在音频时被释放 viewController push。
我的应用程序还有一个AppDelegate对象,由所有UIViewControllers共享。 AppDelegate类包含负责显示的UINavigationController实例 正确的观点。
因此,为了推动关于vire,我使用此代码:
[appDelegate.navigationController pushViewController:initialLoadingViewController animated:NO];
除了我第二次收到错误说同一个视图控制器之外,它运行良好 已经存在了。
我也试过popToViewController:显示正确的视图,但所有按钮似乎都被禁用,然后我的应用程序崩溃了。
所以我的问题是:改变当前viewController的最佳方法是什么?
非常感谢你的帮助。
亨利
答案 0 :(得分:0)
很难说没有看到更多的代码,但听起来你正试图弹出一个你已发布的视图控制器。当您将另一个视图控制器推入堆栈时,不要释放任何内容,看看是否可以修复崩溃....
BTW,appDelegate.navigationController看起来很可疑 - 尝试使用self.navigationController。
答案 1 :(得分:0)
导航控制器维护一堆视图控制器。我认为音频视图应该是第一个被看到的视图。这是根视图控制器。当用户请求它(或其他一些事件)时,您可以在导航控制器视图堆栈(pushViewController:animated:
)上推送about view-controller。
要返回音频视图,只需使用popViewControllerAnimated:
弹出about view-controller。之后,可以释放about view-controller。如果再次需要,则需要再次分配(即从.nib文件重新加载)。