设置 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
.
我有一个 viewcontroller 与默认视图关联。
如果我只想放弃视图而不是 viewcontroller,可以设置 self.view = nil 吗?因此该视图被丢弃并为新视图分配新值。
我想用新 UI 填充视图,基于我在 viewdidLoad 中所做的条件。因此,如果我设置 self.view = nil,并尝试从任何地方访问视图,它将再次创建视图。因此将设置新属性。
这样做是否正确。或者我必须编写一个单独的方法来使用新属性刷新视图。
请提供正确的方法。
不要删除 uiviewcontroller 自带的默认视图。如果您想根据条件显示自定义 uiview
,那么我建议您创建您的自定义 uiview
,然后对其进行初始化,并将其添加到您的默认视图中以适应相应的条件。
我认为没有正确的方法,但这里有一些建议。
不要中断视图生命周期(确保 -viewWillAppear:
、-viewDidAppear:
、-viewWillDisappear:
、-viewDidDisappear:
都被调用)。
考虑包含在自定义容器视图控制器中的多个视图控制器,而不是交换视图。它将使每个视图控制器专注于特定任务。
考虑空 self.view
并使用 -addSubview:
/-removeFromSuperview
交换内容。这样你就不需要重置 self.view
.