无法调用titleForRow方法UIPickerView

时间:2011-09-07 05:57:51

标签: ios cocoa-touch uipickerview

在我的viewcontroller类中,我有一个属性UIViewPicker myPicker。在didSelectRow方法中(也由UIPicker委托实现。我尝试以下

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

然而,它表示找不到该方法,并说返回类型默认为“id”。

我做错了什么????`

4 个答案:

答案 0 :(得分:4)

“它表示找不到该方法”,因为这是UIPickerViewDelegate的委托方法。检查Apple Documentation。委托方法已实现,未调用!委托人就像听众一样,他们的方法需要由实现委托的类来实现。自动调用这些方法,并预定义它们的调用顺序。您只需知道调用它们的条件。

只要它们与委托方法不同,您始终可以创建自己的方法。

答案 1 :(得分:2)

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

e.g。

- (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";

}

答案 2 :(得分:1)

尝试以下声明

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

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

由于

萨蒂亚

答案 3 :(得分:0)

您可以尝试这样

NSString* temp = [pickerView titleForRow:1 inComponent:0];

在上述方法中。