情況:應用的UI基於UISplitView
,在左側和右側有兩個UINavigationController
s。在UINavigationController
中嵌入了幾個自定義視圖及其對應的UIViewController
。iPad:UISplitViewController中控制器層次結構的設計模式?
一些可能的方法:的class documentation建議使用delegate
S,子視圖之間進行通信也如在this excellent tutorial證明。如果這是在自定義視圖的級別上完成的(在Apple的模板和Ray的教程中,每個UINavigationController
內部都會這樣做),它最終會變得乏味,因爲需要委託來處理所有可能的視圖控制器組合。因此,將每個UINavigationController
分類並僅在這兩者之間建立委派似乎更好。然而,在這種情況下,導航控制器可能必須將信息轉發給它們不需要知道的子控制器 - 委託協議需要爲可能發生的各種事件提供方法,並且子類成爲高度特定於應用的子視圖的重複通信。正如在this post的回答中所建議的,還有兩種可能性:a)響應者鏈,和b)通知。
問題:什麼是處理這種情況的最佳設計模式?