从同一视图中删除视图。这是好的做法吗?

时间:2012-08-16 10:03:30

标签: iphone objective-c ios xcode

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

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

点击“接受”后,我就删除了自己的视图。它工作正常,无论如何这样做还是应该从另一个视图(父母)中删除?

1 个答案:

答案 0 :(得分:1)

不要这样做(self.view) - 它看起来不太好,你可能很难找到问题。 self.view是与UIViewController相关联的主视图。因此,要在屏幕上显示此视图,您必须以某种方式显示它:将其推送到UINavigationController或使用-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 +),