1

我有一個UIViewController說viewControllerA包含了像UIButton一些視圖元素,UILabel等。現在我的問題是我應該創建一個單獨的UIView類的視圖元素,然後在UIViewController添加,或者我應該直接創建裏面的那些視圖元素UIViewController。因此,MVC是不適合在單獨的UIView類中創建視圖元素,然後在UIViewController中添加它?我應該創建一個視圖(包括UIButton,UILabel等)在一個單獨的UIView類或內部UIViewController?

+0

這完全取決於您的要求 – manujmv

+0

是不是有原因讓您不在xcode的storyboard中創建這些按鈕和標籤,然後將它們鏈接到VC類的動作和插座? – Spectravideo328

+0

@manujmv但是,相應地,MVC並不適合將所有視圖元素放在單獨的類中? – russell

回答

0

在UIViewController中構建視圖層次結構的標準位置在-viewDidLoad方法中。只要UIViewController的視圖被創建,該方法就會被調用。如果適用,視圖控制器的視圖將從NIB/Storyboard加載;你的網點將被連接起來;然後-viewDidLoad叫你來進行進一步的自定義:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0,0.0,100.0,40.0)]; 
    [self.view addSubView:aLabel]; 
} 

在可可/可可觸摸你並不總是要繼承一切你所的方式,比方說,Java的。通常還有其他一些優選的方式來擴展內置類的功能,如Objective-C類別,委派和預定義屬性。

以另一種方式做這種事情當然是可能的,但這是最「可可」的方式來做到這一點。實際上,最「類可可」的方式是在Interface Builder中創建視圖層次結構,但如果您想以編程方式執行此操作,這是常用的方法。

相關問題