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

时间:2015-07-31 11:15:59

标签: ios objective-c uipickerview uipickerviewdatasource uipickerviewdelegate

标题说我真的有一个方法被调用来创建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:组件返回0,这将停止调用其他委托方法但是当我设置断点时,我不是这种情况,没有调用任何委托方法一点都不。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

感谢大家的帮助,最后我做了我认为必须做的事情,只是在视图控制器中删除了文本字段及其相关内容,然后重新开始。我发现我的新代码与我发布的内容没有什么不同,所以我认为它与IB中的文本字段有关。

答案 1 :(得分:-1)

将Picker委托添加到.h文件

  @ interface ViewController :UIViewController< UIPickerViewDataSource , UIPickerViewDelegate >