[英]Error when remove a view from superview
我是 iOS 开发的新手,遇到问题想问你。
我的目的是在基本视图上显示一个视图(不是全屏),并且仍然在子视图外的背面看到父级。 所以我在当前 viewController 上添加了一个子视图(UIViewController 的子类),然后我打开子视图:
AViewController *a = [[AViewController alloc] initWithNibName:nil bundle:nil];
[self.view addSubView:a.view];
[a release];
在这里它可以正常工作并按我的预期显示此子视图。 在这个子视图上,我有关闭按钮来关闭这个子视图并在子视图上这样做:
- (IBAction)BackTouchUp:(id)sender
{
[self.view removeFromSuperview];
}
当我单击关闭按钮时,出现错误 EXC_BAD_ACCESS。 当我删除父级上的 [a release] 命令时,它可以工作,但存在 memory 泄漏。
你能为我解释一下这个错误的原因以及如何解决这个问题吗?
你可以设置一个视图标签没有
[a.view setTag:3];
uiView *f=[self.view viewWithTag:3];
[f removeFromSuperview];
我想这会解决你的问题
在接口和实现中定义AViewController
object (AViewController *a),初始化值如下:
a = [[AViewController alloc] initWithNibName:nil bundle:nil];
[self.view addSubView:a.view];
每当您想删除时,只需将[a removeFromSuperview]
放入 dealloc
[a release];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.