设置 self.view = nil 的效果

Effect of setting self.view = nil

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

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

我想用新 UI 填充视图,基于我在 viewdidLoad 中所做的条件。因此,如果我设置 self.view = nil,并尝试从任何地方访问视图,它将再次创建视图。因此将设置新属性。

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

请提供正确的方法。

不要删除 uiviewcontroller 自带的默认视图。如果您想根据条件显示自定义 uiview,那么我建议您创建您的自定义 uiview,然后对其进行初始化,并将其添加到您的默认视图中以适应相应的条件。

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

不要中断视图生命周期(确保 -viewWillAppear:-viewDidAppear:-viewWillDisappear:-viewDidDisappear: 都被调用)。

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

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