0

このコードはうまく機能します:

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コンポーネントを開発するには、これを知る必要があります。これは、簡単に統合できるはずです。

4

1 に答える 1

1

UIDatePickerのサブクラスでUIControlあるため、のサブクラスではUIView ありません。ビューへのUIViewController追加は、を使用して追加されます。UIViewaddSubView

UIDatePickerのサブクラスだった場合は、UIViewController実際に次を使用して追加する必要がありますaddChildViewController

カスタムビューを作成するときは、拡張するクラスによって異なります。拡張する場合は、UIViewを使用する必要があります。拡張する場合は、を使用します。addSubViewUIViewControlleraddChildViewController

于 2012-06-18T09:24:47.443 に答える