2011-10-14 38 views
1

所以,許多人一樣,我來面對的UITabBarController,它不適合繼承必須是根視圖控制器特點。子類或不子類的UITabBarController

我必須管理所有子視圖的行爲,自然的方式來做它似乎有一個根視圖控制器,他們報告,並在它們之間傳遞消息。在我當前的設置中,我有PBModalRootViewController實例化UITabBarController並將其設置爲子視圖。 PBModalRootViewController管理子視圖並負責解除模態視圖。 like so http://p.twimg.com/Abu0iWDCMAAwhuy.jpg:large

這是一個非常乾淨的解決方案它會導致不可靠的行爲從的UITabBarController我以爲不喜歡被一個子視圖。這是我需要修復我船前,我有幾個解決方案:

  1. 子類的UITabBarController後來就應對潛在影響。

  2. 將PBModalRootViewController調整爲PBModalSupervisor。即:使它成爲啓動tabBarController和子視圖的類,返回一個很好的配置視圖,然後爲我保留所有這些視圖。
    這可能會導致很多亂七八糟的東西,並且額外的指針可能會讓人感到痛苦。

  3. 簡單地重新設計架構以某種巧妙的方法這將是巨大的,任何想法...

  4. 我都沒有想到的所有東西...

  5. 我正在做都是錯的,需要用鱒魚打耳光!

  6. 使用NSNotificationCentre,這可能會因保存,解散等原因而變得混亂,仍然需要某處來管理解僱邏輯。

  7. UITabBarController上的類別?這將是一種圍繞我認爲的子類化..

+0

嗯,看起來像omnigraffle在iPad上是有點破... – mjmdavis

+0

你有沒有考慮過使用'NSNotificationCenter'來簡化視圖控制器之間的通信? – jlehr

回答

1

我認爲設置一個主管對象肯定是要走的路。這取決於您需要跟蹤不同視圖控制器之間的哪種類型的信息。如果每個控制器需要了解和/或顯示的數據,則需要將數據分離出來,並且數據處理對象不應該直接處理視圖,因此它不應該是視圖控制器。