當創建一個自定義的UIViewController
容器(一個包含其他UIViewControllers及其視圖的UIViewController
)誰負責調用viewWillLayoutSubviews和viewDidLayoutSubviews?我的容器類有兩個子控制器,它們在移動到父視圖控制器時都沒有調用這些方法。誰負責在自定義UIViewController容器中調用viewWillLayoutSubviews()/ viewDidLayoutSubviews()?
UIViewController的beginAppearanceTransition(_:animated:)被記錄爲觸發viewWillAppear()
,viewWillDisappear()
,viewDidAppear()
,並viewDidDisappear()
但我看到沒有類似viewWillLayoutSubviews()
/viewDidLayoutSubviews()
的正確途徑。
如最佳我可以計算父視圖控制器(其在此情況下,經由presentViewController(_:animated:completion:)提交)負責調用其子控制器viewWillLayoutSubviews()
/viewDidLayoutSubviews()
在它自己執行這些方法相同的方法。框架似乎在某些情況下調用這些方法(例如,當您設置屬性UIWindow
)而不是其他(例如當您撥打addChildViewController()
時UIViewController
)。
這是一種正確的,習慣的方式去做事嗎?
除了超級實現。 – 2014-11-04 18:39:32
@IanMacDonald良好的附錄,謝謝。 – matt 2014-11-04 18:40:11
也許我應該更清楚。如果它是運行時,那麼如何讓它在自定義容器內的UIViewController對象上調用它們? – 2014-11-04 18:41:31