2012-06-18 52 views
0

此代碼工作得很好:iOS UI組件控制器如何工作?

UIDatePicker *pickerView = [[UIDatePicker alloc] initWithFrame:pickerFrame]; 
[pickerView addTarget:self 
       action:@selector(pickerChanged:) 
    forControlEvents:UIControlEventValueChanged]; 
[self.view addSubview:pickerView]; 

爲什麼我不需要採摘控制器添加到我的UIViewControllers層次?

[self addChildViewController:pickerView.controller]; 

我知道,UIView的沒有控制器財產。但是UIPIcker組件如何將控制器添加到控制器層次結構中?或者UIPicker根本沒有控制器?或者這個控制器不需要在控制器層次結構中?

我需要知道這個來開發我自己的自定義UI組件,應該很容易集成。

回答

1

UIDatePickerUIControl一個子類,是UIView 所以它不是一個UIViewController,增加UIView的意見使用addSubView

被添加如果UIDatePicker是的UIViewController一個子類,那麼你的確將不得不增加一個子類它使用addChildViewController

當您創建自定義視圖時,它將取決於您擴展的類,如果擴展UIView那麼您將需要使用addSubView,如果它會延長UIViewController則使用addChildViewController