不能调用titleForRow方法UIPickerView



在我的视图控制器类我有一个属性UIViewPicker myPicker。在didSelectRow方法中(也由UIPicker委托实现)。我尝试下面的

NSString* temp = [self.myPicker titleForRow:1 inComponent:0].

但是,它说没有找到该方法,并说返回类型默认为"id"。

我做错了什么????'

"it says that method is not found"因为这是UIPickerViewDelegate的委托方法。查看Apple文档。委托方法被实现,而不是被调用!委托类似于侦听器,它们的方法需要由实现委托的类来实现。这些方法是自动调用的,调用顺序是预定义的。你只需要知道它们被调用的条件。

你可以创建自己的方法,只要它们不同于委托的方法。

这是一个委托方法,你可以用它来为行设置特定的标题。我不相信你可以通过这样的实例调用它。你需要在当前控制器中单独实现这个方法(它应该实现UIPickerViewDelegate),然后从那里开始工作。

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if (row==1)
    return @"Title 1";
if (row==2)
    return @"Title 2";
return @"Default Title";

}

试试下面的语句

NSString* temp = [self pickerView:self.myPicker titleForRow:1 forComponent:0];

我想,这会解决你的问题。

感谢

萨提亚

你可以这样试试

<>之前NSString* temp = [pickerView titleForRow:1 inComponent:0];之前

最新更新