即使在 [[UIPickerView alloc] init] 之后设置了委托,也不会调用 UIPickerView 委托方法

UIPickerView delegate methods not being called even though delegate has been set after [[UIPickerView alloc] init]

标题说的都是真的我有一个方法被调用来创建 UIPickerView 并且在与委托方法相同的视图控制器中。视图控制器实现了 UIPickerViewDataSource 和 UIPickerViewDelegate 协议

// ViewController.m

- (void)setUpPickerView{
    UIPickerView *pickerView = [[UIPickerView alloc] init];
    pickerView.dataSource = self;
    pickerView.delegate = self;
    pickerView.showsSelectionIndicator=YES;
    self.groupsTextField.inputView = pickerView;
}

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

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    return [self.pickerViewData count];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    return self.pickerViewData[row];
}

我看到很多答案,人们说如果 pickerView:numberOfRowsInComponent:component returns 0 这将阻止其他委托方法被调用,但当我设置断点时,情况并非如此 none 的委托方法被调用。

在此先感谢您的帮助!

将选择器委托添加到 .h 文件

  @ interface ViewController :UIViewController< UIPickerViewDataSource , UIPickerViewDelegate >

感谢大家的帮助,最后我做了我认为我必须做的,只是删除了视图控制器中的文本字段和与之关联的所有内容,然后重新开始。我发现我的新代码与我发布的代码没有真正的区别,所以我认为它与 IB 中的文本字段有关。