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