在我的viewcontroller类中,我有一个属性UIViewPicker
myPicker。在didSelectRow方法中(也由UIPicker委托实现。我尝试以下
NSString* temp = [self.myPicker titleForRow:1 inComponent:0].
然而,它表示找不到该方法,并说返回类型默认为“id”。
我做错了什么????`
答案 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];
在上述方法中。