我有一个看起来像这样的堆栈: 导航控制器 - >表视图控制器 - >另一个表视图控制器。
发生的事情是,AnotherTableViewController
中的方法显示警报视图,然后将控制器弹出堆栈。警报视图显示正常,但是在单击“关闭”按钮后,它会抛出EXC_BAD_ACCESS
,我知道当您向已发布的对象发送消息时会发生什么。我认为正在发生的是警报视图正在将dismissWithClickedButtonAtIndex:Animated:
消息发送给我已分配给AnotherTableViewController
的代理,但是在我弹出它之后它就被释放了所以现在在消息发送之后,它会抛出错误。
弹出控制器后(或之前),我该如何显示警报视图?
我也使用AnotherTableViewController
中的属性并在警报视图中显示它们。
答案 0 :(得分:3)
在显示UIAlertView
时,您不应该像下面那样设置代理,
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Please enter current and new password" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
因为你没有对委托方法做任何事情,所以这个解决方案应该可行