为了加快我的应用程序,我在AppDelegate中创建了三个不同的UIViewController,它具有控制器的只读属性。这些控制器用于导航控制器。
如果我点击根视图上的按钮,我只使用pushViewController方法显示另一个视图。让我在这里向您展示一些代码。
UIViewController* controller = delegate.anotherViewController;
[delegate.navigationController pushViewController:controller animated:YES];
第一次,这项工作很顺利,但是如果我向后导航并再次点击按钮,我在第二行会收到一个'EXC_BAD_ACCESS'信号。
怎么了?而且,如何在开始时准备我的所有视图控制器,而不是在需要时创建它们?
答案 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];