动态选择UIPickerView中的行

时间:2010-09-10 03:38:46

标签: iphone objective-c uipickerview

我有一个使用UIPickerView和3个按钮的iPhone应用程序。

此选择器有一个包含100行(0,1,2,...,98,99)的组件。

我想实现代码,以便当我按下按钮时

  • button1:将选择器选择第21行(其值为20)
  • button2:将选择器选择第41行(其值为40)
  • button3:将选择器选择第60行 (价值60)

我知道如何在首次加载视图时让选择器选择一行 将以下代码放入viewDidLoad()方法:

- (void)viewDidLoad   
{  
    ........  
    [picker selectRow:50 inComponent:0 animated:YES];  
}  

但是当我点击按钮时,我无法让选择器选择所需的行。

4 个答案:

答案 0 :(得分:4)

将按钮挂钩到动作方法,然后在你的动作方法中简单地调用相同的selectRow:inComponent:animated:方法,即

- (IBAction)button1Action {
    [picker selectRow:20 inComponent:0 animated:YES];
}

然后在Interface Builder中将按钮连接到该方法。

答案 1 :(得分:1)

还要确保使用“IBOutlet”定义选择器,如下所示。并将选择器的引用插座连接到:

@property (nonatomic, retain) IBOutlet UIPickerView *picker;

答案 2 :(得分:0)

你可以在viewDidLoad中保存相同的代码,以便在点击按钮时触发事件时选择pickerRow。

-(void)button1clickevent{
//FUNCTION MUST GET FIRE WHEN BUttON ! IS CLICKED
       [picker selectRow:50 inComponent:0 animated:YES];
}

快乐的iCODING ......

答案 3 :(得分:0)

好的,现在我重新创建项目并重新输入代码:

- (IBAction) goToRowTwenty  
 {   
    [picker selectRow:20 inComponent:0 animated:YES];   
    [timerPickerView reloadComponent:0];  
 }  

它有效,我真的不知道发生了什么,但谢谢你们回答我的问题。