我有一個自定義的容器視圖控制器,我從故事板實例化,並且有一堆方法修改了我從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 –