调用[UINavigationController pushViewController]时获取'EXC_BAD_ACCESS'信号

时间:2010-08-16 16:43:48

标签: iphone uiviewcontroller

为了加快我的应用程序,我在AppDelegate中创建了三个不同的UIViewController,它具有控制器的只读属性。这些控制器用于导航控制器。

如果我点击根视图上的按钮,我只使用pushViewController方法显示另一个视图。让我在这里向您展示一些代码。

UIViewController* controller = delegate.anotherViewController;
[delegate.navigationController pushViewController:controller animated:YES];

第一次,这项工作很顺利,但是如果我向后导航并再次点击按钮,我在第二行会收到一个'EXC_BAD_ACCESS'信号。

怎么了?而且,如何在开始时准备我的所有视图控制器,而不是在需要时创建它们?

2 个答案:

答案 0 :(得分:0)

大多数情况下,EXC_BAD_ACCESS意味着您已经发布了一个对象,并且您尝试重用它而不保留它。 看看你是否过早发布了你的viewController以及你是否正确地使用它...

答案 1 :(得分:0)

我遇到了同样的问题。我的代码是

AddMedia *info = [[AddMedia alloc] initWithStyle:UITableViewStyleGrouped]; 
[self.navigationController pushViewController:info animated:YES];
[info release];

我正在发布我的viewCOntroller,它崩溃了应用程序。

当我评论这条线时,它无缝地工作。更改后的代码是:

AddMedia *info = [[AddMedia alloc] initWithStyle:UITableViewStyleGrouped]; 
[self.navigationController pushViewController:info animated:YES];
// [info release];