iOS UI组件控制器如何工作?

时间:2012-06-18 09:03:46

标签: ios ios5 uiviewcontroller controller custom-controls

此代码效果很好:

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 个答案:

答案 0 :(得分:1)

UIDatePickerUIControl的子类,是UIView的子类 所以它不是UIViewController,在视图中添加UIView是使用addSubView添加

如果UIDatePickerUIViewController的子类,那么你确实必须使用addChildViewController

添加它

当您创建自定义视图时,它将取决于您扩展的类,如果您扩展UIView,则需要使用addSubView,如果它将扩展UIViewController然后使用addChildViewController