此代码效果很好:
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组件,应该很容易集成。
答案 0 :(得分:1)
UIDatePicker
是UIControl
的子类,是UIView
的子类
所以它不是UIViewController
,在视图中添加UIView
是使用addSubView
添加
如果UIDatePicker
是UIViewController
的子类,那么你确实必须使用addChildViewController
当您创建自定义视图时,它将取决于您扩展的类,如果您扩展UIView
,则需要使用addSubView
,如果它将扩展UIViewController
然后使用addChildViewController