我是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]命令时,它可以工作,但是存在内存泄漏。
您能否告诉我这个错误的原因以及如何解决这个案子?
答案 0 :(得分:0)
您可以设置视图标记号
[a.view setTag:3];
uiView *f=[self.view viewWithTag:3];
[f removeFromSuperview];
我认为这将解决您的问题
答案 1 :(得分:0)
在接口和实现中定义AViewController
对象(AViewController * a),初始化值如下所示:
a = [[AViewController alloc] initWithNibName:nil bundle:nil];
[self.view addSubView:a.view];
并且只要您想删除,只需将[a removeFromSuperview]
放入dealloc
[a release];