0

我是 iOS 开发的新手,我遇到了麻烦想问你。

我的目的是在基本视图上显示一个视图(不是全屏),并且仍然在子视图外的背面看到一个父级。所以我在当前视图控制器上添加了一个子视图(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] 命令时,它可以工作,但存在内存泄漏。

你能解释一下这个错误的原因以及如何解决这个问题吗?

4

2 回答 2

0

你可以设置一个视图标签没有

[a.view setTag:3];
uiView *f=[self.view viewWithTag:3];
[f removeFromSuperview];

我想这会解决你的问题

于 2012-04-10T11:17:52.270 回答
0

在接口和实现中定义AViewController对象(AViewController *a),初始化值如下:

a = [[AViewController alloc] initWithNibName:nil bundle:nil];

[self.view addSubView:a.view];

每当你想删除简单的 put [a removeFromSuperview]and in dealloc

[a release];
于 2012-04-10T11:40:33.723 回答