【发布时间】:2013-06-28 13:33:10
【问题描述】:
我有一个自定义容器视图控制器,我从情节提要中实例化它,它有一堆方法可以修改我已经设置出口到情节提要的子视图的内容。
有很多方法可以实例化这个 ViewController,目前我必须确保,无论我如何实例化它,我要么显示它,显式调用 loadView,要么访问它的 .view 属性我开始做任何使用其插座的事情(因为在调用loadView 之前它们都是空指针)。
理想情况下,我想在我的ViewController 的单个初始化方法中调用loadView 或.view 来解决这个问题,而不是必须调用.view我从中初始化 ViewController 的一堆不同的地方。
UIViewController 类是否有指定的初始化程序?如果没有,我需要用我的自定义初始化逻辑修改哪些方法,以确保无论如何都会在我的 ViewController 初始化时调用它?
【问题讨论】:
-
UIViewController 文档明确指出永远不应该直接调用
loadView。 -
@MartinR 是的,Xcode 的警告也明确指出,属性 getter 不应该用于副作用。尽管如此,如果您想在显示 ViewController 并导致
loadView被调用之前通过插座进行子视图操作,您别无选择,只能使用这两种禁止的方法之一——除非我错过了另一种选择,在哪种情况请在此处提供:stackoverflow.com/a/1935566/1709587
标签: ios uiviewcontroller