UINavigationController更改视图问题

时间:2009-04-03 21:35:43

标签: iphone

我在更改显示的视图时遇到问题。

我的应用包含2个视图控制器。一个音频播放器和一个约。 音频视图控制器永远不会被释放,而第二个音频控制器在音频时被释放 viewController push。

我的应用程序还有一个AppDelegate对象,由所有UIViewControllers共享。 AppDelegate类包含负责显示的UINavigationController实例 正确的观点。

因此,为了推动关于vire,我使用此代码:


[appDelegate.navigationController pushViewController:initialLoadingViewController animated:NO];

除了我第二次收到错误说同一个视图控制器之外,它运行良好 已经存在了。

我也试过popToViewController:显示正确的视图,但所有按钮似乎都被禁用,然后我的应用程序崩溃了。

所以我的问题是:改变当前viewController的最佳方法是什么?

非常感谢你的帮助。

亨利

2 个答案:

答案 0 :(得分:0)

很难说没有看到更多的代码,但听起来你正试图弹出一个你已发布的视图控制器。当您将另一个视图控制器推入堆栈时,不要释放任何内容,看看是否可以修复崩溃....

BTW,appDelegate.navigationController看起来很可疑 - 尝试使用self.navigationController。

答案 1 :(得分:0)

导航控制器维护一堆视图控制器。我认为音频视图应该是第一个被看到的视图。这是根视图控制器。当用户请求它(或其他一些事件)时,您可以在导航控制器视图堆栈(pushViewController:animated:)上推送about view-controller。

要返回音频视图,只需使用popViewControllerAnimated:弹出about view-controller。之后,可以释放about view-controller。如果再次需要,则需要再次分配(即从.nib文件重新加载)。

Apple's introduction to view controllers