我有一個繼承自UINavigationController
和UINavigationControllerDelegate
的類。如何爲UINavigationController派生對象創建初始化程序?
我設置委託在viewDidLoad()
:
self.navigationController?.delegate = self
但是委託方法(如willShow
,didShow
)沒有得到被稱爲東西都壓入堆棧。
因此,在閱讀過去的問題之後,我試圖在初始化程序中早於viewDidLoad
設置委託。我嘗試過一百萬個組合,但它們要麼不編譯,要麼不被調用。
不會編譯:
convenience init()
{
super.init()
self.navigationController?.delegate = self
}
不會編譯:
convenience init()
{
init(rootViewController: self)
self.navigationController?.delegate = self
}
不會得到所謂的
convenience init()
{
self.init()
self.navigationController?.delegate = self
}
等等等等,嘗試新事物基礎關於編譯器說什麼是問題。但是編譯器會說「添加self
來調用」,所以添加它然後說「從調用中刪除self
」等等。我嘗試了數百萬個組合,嘗試搜索過去的問題並複製/粘貼其初始化程序。我仍然無法得到任何工作。