0

我在视图中添加了以下代码。

- (IBAction)accept_clicked:(id)sender {
    [self.view removeFromSuperview];
    self.view = nil;
}

单击接受后,我已经像这样删除了自己的视图。它工作得很好,无论如何都可以这样做还是应该从另一个视图(父)中删除?

4

1 回答 1

1

不要这样做(使用self.view) - 它看起来不太好,您可能会遇到难以发现的问题。self.view是与 关联的主视图UIViewController。所以这个视图要在屏幕上可见,你必须以某种方式显示它:要么将其推送到 aUINavigationController或以-presentViewController:animated:completion:(IOS5+) 或- presentModalViewController:animated:. 通过实例化视图控制器并将其视图添加到当前视图控制器的视图来显示视图也不是一个好习惯:

//Not good
MyViewController *mvc = [[MyViewController alloc] init];
[self.view addSubView:mvc.view];

在您的特定情况下,我想您正在展示一些条款和条件(或类似的东西)并且有一个接受和拒绝按钮,您最好的解决方案是从某个地方展示您的视图控制器,实现一个委托方法,以便展示视图控制器可以得到结果,然后在您的-accept_clicked:方法中使用[self dismissModalViewControllerAnimated:YES][self dismissViewControllerAnimated:completion:](IOS5+),

于 2012-08-16T10:34:59.573 回答