iOS:Subclassing UIPickerView 未在主视图中加载

iOS:Subclassing UIPickerView not loading in the main view

我正在尝试子类化 UIPickerView 但未在主视图中加载。

这是我的代码:

//Picker.h:
@interface Picker : UIPickerView

- (id)initWithFrame:(CGRect)frame;

//Picker.m:
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
    }
    return self;
}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    return 3;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    return @"bla";
}

这是我 viewController 上的代码:

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:YES];
    self.myPicker = [[Picker alloc] initWithFrame:self.view.frame];
    [self.view addSubview:_myPicker];
}

你们中有人知道为什么选择器没有加载到我的视图中吗?

非常感谢你的帮助。

首先,在Picker.h的header中添加<UIPickerViewDelegate, UIPickerViewDataSource>

然后,将委托分配给您自己的 Picker object。

-(id)initWithFrame:(CGRect)frame {

   self = [super initWithFrame:frame];   
   if (self) {
      self.delegate = self;    // <-- add this line
   }   
   return self; 
}