设置self.view = nil的效果

时间:2015-02-25 11:02:27

标签: ios iphone uiview uiviewcontroller

我有一个与之关联的默认视图的viewcontroller。

如果我想放弃视图而不是viewcontroller,是否可以设置self.view = nil?因此,该视图将被丢弃,新视图将被分配新值。

我希望根据我在viewdidLoad中执行的条件,使用新UI填充视图。因此,如果我设置self.view = nil,并尝试从任何地方访问视图,它将再次创建视图。因此将设置新属性。

这样做是否正确。或者我必须编写一个单独的方法来刷新具有新属性的视图。

请为我提供正确的方法。

2 个答案:

答案 0 :(得分:2)

我认为没有正确的方法,但这里有一些建议。

请勿中断视图生命周期(确保调用-viewWillAppear:-viewDidAppear:-viewWillDisappear:-viewDidDisappear:

考虑自定义容器视图控制器中包含的多个视图控制器,而不是交换视图。它将使每个视图控制器专注于特定任务。

考虑使用空self.view并使用-addSubview: / -removeFromSuperview来交换内容。这样您就不需要重置self.view

答案 1 :(得分:1)

请勿删除uiviewcontroller附带的默认视图。如果您想根据条件显示自定义uiview,我建议您创建自定义uiview,然后将其初始化并将其添加到默认视图中以查找相应条件。