2013-07-19 254 views
2

我有一個完美的uipickerview在一個完成和取消按鈕的uipopover。當用戶多次打開uipickerview時,我可以保存最後選定的行並將其顯示爲默認行。問題是,當用戶註銷並登錄時,我想uipickerview重新開始,即,當我打開uipickerview並單擊完成按鈕(不選擇任何行)時,我希望它與默認行即ie。 row0,但它顯示註銷前最後選定的行!我該如何解決這個問題?非常感謝。有沒有辦法清除uipickerview選擇?

NSString *selectedType = @"ALL"; 
int rowselected = 0; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    rowselected = 0; 
    _typearray = [[NSArray alloc] initWithObjects:@"ALL", @"COACH", @"GROUP", @"PRIVATE", nil]; 
    NSInteger lastrow =[[[NSUserDefaults standardUserDefaults] objectForKey:@"gueststyperow"] integerValue]; 

    if(lastrow!=0) 
     [self.picktype selectRow:lastrow inComponent:0 animated:NO]; 
    else 
     [self.picktype selectRow:0 inComponent:0 animated:NO]; 
} 

// DONE按下按鈕:

- (IBAction)doneButtonPress:(UIBarButtonItem *)sender { 
    NSLog(@"%@",_delegate); 
    NSNumber *temprow = [NSNumber numberWithInt:rowselected]; 
    [[NSUserDefaults standardUserDefaults] setValue:temprow forKey:@"gueststyperow"]; 
    [_delegate sendtype:selectedType]; 
} 

// PICKERVIEW選擇

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row 
     inComponent:(NSInteger)component{ 
     rowselected = row; 
     selectedType = [_typearray objectAtIndex:row]; 
} 
+2

你嘗試在'viewDidLoad'中設置pickerview爲零嗎? – CaptJak

+0

謝謝@CaptJak ..你可以更具體地說明如何在代碼中完成這個任務嗎? – kate

+0

CaptKack說什麼。釋放,設置爲零,然後創建一個新的選擇器視圖。 – rocky

回答

5

將這個上面[super viewDidLoad]

[picker reloadAllComponents]; 
[picker selectRow:0 inComponent:0 animated:YES]; 

這應該設置你的pickerview划船有0個指數y加載視圖的時間。

+0

是它的工作@ CaptJak ..謝謝你...我把它放在[超viewdidload ],它像一個魅力 – kate

相關問題