我有一个自定义的容器视图控制器,我从故事板实例化,并且有一堆方法修改了我从storyboard设置插座的子视图的内容。ViewController之前被调用的自定义init方法viewDidLoad
有很多方法可以实例化这个ViewController,目前我必须确保,但是我实例化它,在开始之前我要么显示它,明确地调用loadView
,要么访问它的.view
属性任何使用其出口的东西(因为它们都是空指针,直到调用loadView
)。
理想情况下,我想提出一个电话loadView
或.view
我ViewController
单一初始化器的方法来解决这个问题,而不是把呼叫.view
在一堆不同的地方,我的初始化ViewController来自。
UIViewController
类是否有指定的初始化程序?如果没有,我需要使用我的自定义初始化逻辑修改哪些方法,以确保在我的ViewController初始化时调用它,而不管它是什么?
UIViewController文档明确指出'loadView'不应该直接调用。 –
@MartinR是的,Xcode的警告还明确指出属性获取器不应该用于副作用。尽管如此,如果你想在显示ViewController之前通过网点进行子视图操作并导致调用“loadView”,那么除了使用这两种禁止方法之外别无选择,除非我错过了另一种方法,哪种情况请在此提供:http://stackoverflow.com/a/1935566/1709587 –