我有一个B UIViewController,里面有一个关闭按钮。
-(IBAction) close:(id) sender
从A视图控制器中,我像这样呈现B视图控制器
[self presentViewController:B animated:YES completion:NULL];
然后一切正常,我可以按一下B里面的关闭按钮。
但是如果我这样做
B* bcontrol=[[B alloc] init];
[self.view addsubview bcontrol.view];
然后这样,如果我按下关闭按钮,它将生成EXEC_BAD_ACCESS错误。
这是为什么?有任何想法吗?
最佳答案
我认为您正在使用ARC。
您将bcontrol创建为局部变量,并且不保留对其的引用,因此ARC在删除其视图时将其释放。然后,您的按钮尝试在已释放的对象中触发动作...,其余的您便知道了。
使B成为一个强大的属性,以便它在您需要它的时候一直存在。