0

我試圖找到重構這個最好的方法。現在,每個視圖控制器(其中約20)的具有初始化像這樣即工具欄/導航欄的內容的功能,重構類似的代碼針對所有視圖控制器的導航欄

- (無效)toolbarInit

並在每個控制器的的viewDidLoad,你會看到該函數被調用,即[self toolbarInit];

基本上,toolbarInit所做的就是在導航欄的右邊框上放置一個loginButtonBarButtonItem。

應該我:

a。將工具欄/導航欄設置在應用程序委託中(是否可以初始化每個視圖控制器的導航欄,無論它已經向下堆疊多深)?

b。創建一個toolbarController或其他東西,只是把所有的設置代碼/登錄代碼在那裏?

非常感謝任何其他建議。

+0

我完全回答你的問題嗎?如果是這樣,請將其標記爲已接受。 – Justin 2010-08-02 01:00:00

回答

1

我會考慮的其中一個選項:

  • 這聽起來好像你反覆按相同或相似的UIViewControllers到堆棧中。是否有可能它們都應該從相同的UIViewController子類派生?如果是這樣,初始化可以發生在堆棧中所有20個物品共享的超類中。

  • 如果視圖控制器有不同的超類,請考慮在處理實例化和添加按鈕的UIViewController上定義一個類別。然後您只需要導入標題並在viewDidLoad中調用相同的[self toolbarInit]

  • 和上面一樣,除了不使用類別外,還創建了一個獨立的類來處理像這樣的設置。 toolbarInit中的邏輯可能被卡在類方法中,如setupNavigationItem:

相關問題