我有一個簡單的測試項目與UINavigationController作爲我的.rootViewController。 我推動第一個ViewController,它有一個+按鈕作爲右欄按鈕項,我訂閱它的水龍頭以呈現一個新的ViewController(與前一個相同)。 推塞格按我期望的那樣工作。訂閱UINavigationController後退按鈕與RxSwift/RxCocoa
UIKit爲我管理後退按鈕,我認爲這是UINavigationController,使場景背後的魔力。
現在,我需要做的是訂閱後退按鈕,但我找不到如何做到這一點。 我與 1)navigationController.navigationBar.backItem?.backBarButtonItem?.rx.tap 2)navigationController.navigationItem.backBarButtonItem試過嗎?.rx.tap 但他們似乎是零,因此可選鏈接阻止訂閱。
感謝您的幫助,Luca-
爲什麼你需要訂閱後退按鈕?當前視圖控制器將從導航控制器的堆棧中彈出,並且以前的視圖控制器將成爲新的當前視圖控制器。如果你需要這個新的當前視圖控制器在它返回頂部之後做些什麼,那麼你應該把它放在viewWillAppear(animated:)方法中,每當視圖控制器成爲導航控制器中最頂層的視圖控制器時調用該方法或以模態方式呈現。 – NRitH
謝謝NRITH的建議。我正在探索ViewController導航如何與RxSwift/RxCocoa一起使用。我想有一個協調員實例化ViewControllers和ViewModels。我認爲導航應由這些協調員對象進行編排,並做到這一點,他們需要知道用戶何時點擊後退按鈕。無論如何,這在我看來很困惑,但viewController.rx.sentMessage(#selector(UIViewController.viewWillDisappear(_ :)))按照你的建議工作。 – Luca