我有這個UISplitViewController
,其中主控和詳細VC都是UINavigationController
子類。 這兩者應該「同步」工作,即當一個人推新VC時,第二個人也必須推一個VC。當一個人彈出時,另一個人也要彈出。一個總是對另一個觸發相同的行爲。UISplitViewController - 當細節被彈出時彈出主控(反之亦然)
我已經能夠處理問題的推送部分,因爲推送功能在每個我使用的類中都是顯式的。
另一方面,膨化是一個大問題。當用戶按下後退按鈕時會觸發該操作,並且我不知道如何檢測此事件。一種可能的解決方案是檢測事件。
另一種解決方案我認爲是覆蓋UINavigationController
的- popViewControllerAnimated:
,使一類流行的其他類,就像這樣:
// On DetailNav
- (UIViewController *)popViewControllerAnimated:(BOOL)animated {
// Code to make MasterNav pop
return [super popViewControllerAnimated:animated];
}
// On MasterNav
- (UIViewController *)popViewControllerAnimated:(BOOL)animated {
// Code to make DetailNav pop
return [super popViewControllerAnimated:animated];
}
我沒有刻意添加完整的代碼,因爲這是足以注意到這種方法會導致無限循環,最終會將兩個NavController彈出到它們的根目錄(然後可能會崩潰)。
達到預期行爲的最佳方式是什麼?
它不會像以前一樣卡在循環中嗎?因爲如果我從Master彈出,Detail控制器會在你的代碼中輸入'if'語句,對吧? – Guilherme