当我点击带有代码
的完成按钮时UIBarButtonItem * button = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(dismissView:)] autorelease];
self.navigationItem.rightBarButtonItem=UIBarButtonSystemItemDone;
[[self navigationItem] setRightBarButtonItem:button];
[button release];
-(void)dismissView: (id)sender
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
应用程序崩溃并发出消息程序接收信号EXC_BAD_ACCESS
任何想法都有问题。
感谢您的帮助。
答案 0 :(得分:2)
这一行是完全错误的:
self.navigationItem.rightBarButtonItem=UIBarButtonSystemItemDone;
删除它。您之后正在设置rightBarButtonItem
,并且您无法将rightBarButtonItem
设置为UIBarButtonSystemItemDone
- 这根本没有任何意义。
哦,你过度释放button
。同时删除[button release];
。
答案 1 :(得分:1)
您过度释放按钮。您在分配/ init时自动释放它,然后在将其设置为导航项后再次释放它。
答案 2 :(得分:1)
你过度释放button
。第一行的+alloc
调用已经在同一行的-autorelease
上进行了平衡 - 此后您无需在其上调用-release
。