2011-06-08 130 views
2

我有一個使用UITabBarController作爲其外部容器的應用程序。每個選項卡使用UINavigationController作爲其根視圖控制器。我使用多按鈕工具欄作爲導航欄的右側欄按鈕。其中一些工具欄按鈕對應用程序是通用的;一些涉及個別標籤。應用程序設計問題

我的直覺是創建一個基本視圖控制器類與所有通用工具欄的構建和實現代碼,然後讓我的每個根視圖控制器繼承這個基類。如果他們想向工具欄添加其他按鈕,他們只需要重寫工具欄構建方法(我將集中構建工具欄),併爲其他按鈕添加實現代碼。

理論上聽起來不錯,但由於我是Objective-C的新手,我歡迎任何來自更有經驗的開發人員的額外意見/建議。

回答

0

如果您的「工具欄構建和實現」中有足夠的可重用代碼來激勵您實現基類並在子類上重用它,那麼它實際上聽起來像是一個很好的解決方案。

您應該分析的一件事是您將擴展哪個類:UIViewController或UIToolBar。

如果你只是想要一個自定義的可重用工具欄,只改變一些視覺屬性(如左側按鈕的標籤,或讓右側按鈕可見或不等,),也許最好的辦法是實現一個從UIToolBar擴展的基類,然後在視圖控制器中使用它。但是,如果您從工具欄的按鈕或任何超出簡單視覺屬性設置的「繁重代碼」中執行相當複雜的邏輯處理操作,那麼創建擴展UIViewController的基類聽起來就像是一種更好的方法。

更好的選擇取決於你和你想要實現/重用。

祝你好運!

+0

是的,我有足夠的通用實現代碼(超出工具欄構造),但感謝a)讓我放心,我在正確的軌道上,b)提醒我準確選擇我需要擴展的類這種情況。 – wayne 2011-06-09 10:22:49