2010-09-10 74 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;