我可以在没有removeFromSuperview的情况下多次执行addSubview吗?

时间:2011-10-15 03:10:00

标签: iphone

我是否必须为每个addSubview执行removeFromSuperview? 例如,只要弹出推送视图,就会调用viewWillAppear。 如果有addSubview,则会多次调用它。

- (void)viewWillAppear:(BOOL)animated {   
    [self.view addSubview:myView];
}

2 个答案:

答案 0 :(得分:3)

您是否有理由不将该代码放入viewDidLoad中?但是如果你想把它保存在viewDidAppear中就可以了。如果你将一个子视图添加到超级视图它已经是子视图,没有任何反应。实际上,如果您将子视图添加到任何视图,它将从之前的超级视图中删除它。

答案 1 :(得分:2)

我不相信这是必要的,不是 - 引用文档,

  

视图只能有一个超级视图。如果视图已经具有超视图并且该视图不是接收者,则此方法会在使接收器成为新的超级视图之前删除先前的超视图。

我们的应用程序中有不少观点,由于各种原因,我们可能会多次分配到同一个超级视图,到目前为止这并没有引起任何问题。