2010-09-10 75 views
0

我有一个使用UIPickerView和3个按钮的iPhone应用程序。动态选择UIPickerView中的一行

这个选取器有一个100行(0,1,2,...,98,99)的组件。

我想,这样,当我按上的按钮来实现的代码

  • 按钮1:将拣货机选择行21(其值20)
  • BUTTON2:将使选择器选择行第41个(其中有值40)
  • BUTTON3:将拣货机选择行60 (其值60)

我知道如何使选择器选择一行时

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

但我不能使选择器选择所需要的行,当我点击按钮:由视图第一负载 把下面的代码中viewDidLoad中()方法。

回答

0

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

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

和它的作品,我真的不知道发生了什么,但还是谢谢你们回答我的问题。

4

挂机按钮的操作方法,然后在动作方法简单地调用同一个selectRow:inComponent:animated:方法,即

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

你挂钩的按钮,在Interface Builder该方法。

+0

是的,我做到了。我甚至从选取器中调用'reloadComponent',但它仍然不起作用。我必须在这里错过一些东西。这是我在我的应用中用于'button1'的代码。 - (IBAction)goToRowTwenty {[picker selectRow:20 inComponent:0 animated:YES]; [timerPickerView reloadComponent:0]; } – 2010-09-10 14:19:43

+0

感谢您的提示。 Sometomes你只是没有看到明显的。 :) – 2012-10-08 22:43:07

0

您可以将相同的代码放在viewDidLoad中,以便在单击按钮时触发点击事件时选择pickerRow。

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

HAPPY iCODING ...

+0

是的,我做到了。我甚至从选取器中调用'reloadComponent',但它仍然不起作用。我必须在这里错过一些东西。这是我在我的应用中用于'button1'的代码。 - (IBAction)goToRowTwenty {[picker selectRow:20 inComponent:0 animated:YES]; [timerPickerView reloadComponent:0]; } – 2010-09-10 14:20:52

+0

什么是这个timepickerView在这里...重新加载你的选择器[picker reloadComponent:0]不是[timepicker reloadComponent:0];此外,无需重新加载选取器。请检查您的选取器是否真的与xib中的选取器绑定。 – 2010-09-13 05:21:15

1

还要确保选择器用“IBOutlet”定义如下。并将选取器的参考插座连接到此:

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