2012-09-24 52 views
0

我正在編寫一個測試項目,以學會在代碼中編寫所有內容。我想這樣做的方式,這樣我可以更好地瞭解故事板中的元素爲我做場景的共享相同的用戶界面元素IOS - 使用#import類的正確方法

在我的項目,我有幾個UIViewControllers後面。例如,我在屏幕頂部有一個UITool欄,其中有幾個按鈕。

現在我希望把他們UIToolbar在一個單獨的類,這樣我就不用它寫出來或複製粘貼ñ它的每個控制器。

現在我知道我可以這樣實現這一點:

#import "General_Add_ons.h" //the UIToolbar is properly set up in this file 

@interface FirstViewController : General_Add_ons 

,然後我就用[self topToolBar]; // topToolBar是工具欄

現在我只想澄清的名字是這個最好還是唯一的方法呢?

不知怎的,我覺得我應該能夠做到這一點:

General_Add_ons *gao = [[General_Add_ons alloc] init]; 
    [gao topToolbar]; 

我在想關於這個錯誤的方式?如果我有多個外部類,第一種方法似乎是限制性的。

在此先感謝。

回答

1

您的方法似乎正確。如果您有多個UIViewController實例需要相同的UI元素或其他控制器代碼,則可以將這些元素置於UIViewController子類中。在你的情況,我相信類General_Add_onsUIViewController你的子類將繼承。

這個類(你General_add_ons)應該有一個屬性爲可重複使用的工具,例如

@property (nonatomic, strong) UIToolbar *toolbar; 

順便說一下,按照慣例,Cocoa中的類名是:前綴+沒有下劃線的大寫字母。蘋果在naming conventions上有很好的參考。

編輯

對於澄清,您可以根據需要繼承您的自定義子多次。例如,在我的代碼中,我有一個類CCFViewController,它封裝了我希望所有視圖控制器都具有的常見屬性和行爲。然後在該項目中,所有視圖控制器都從該父控制器繼承。同樣,你的工具欄將會存在於超類中,而其他控制器將繼承它。

+0

感謝有關的命名約定尖 - 我使用適當的那些制定:-)這樣的官方應用程序時如果我理解正確,第一種方法是最好的方法? –

+0

是的,我認爲第一種方式就是你想要的。在第二種情況下,您直接實例化超類。因爲它聽起來像'General_add_ons'是一個'UIViewController'子類,這是不必要的。 – FluffulousChimp

+0

好的 - 抱歉再打擾一次,說如果我有多個UiViewControllers因爲我想以某種方式組織事情比第一種方式只允許我做1個子類是正確的嗎?我不能從多個類繼承? –

0

我不是100%肯定,但我認爲你應該嘗試一下這種方法:

General_Add_ons *gao = [[General_Add_ons alloc] init]; 
[gao.topToolbar anypossiblemethodcall];