2013-07-19 2 views
2

У меня отлично работает uipickerview в uipopover с кнопкой «done» и «cancel». Я могу сохранить последнюю выбранную строку и отобразить ее по умолчанию, когда пользователь открывает uipickerview более одного раза. Проблема заключается в том, что когда пользователь выходит из системы и входит в систему, я хочу, чтобы uipickerview начинал заново, т. Е. Когда я открываю uipickerview и нажимаю кнопку «done» (без выбора какой-либо строки), я хочу, чтобы он шел со строкой по умолчанию, т.е. 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

Вы пытались настроить pickerview на nil в 'viewDidLoad'? – CaptJak

+0

спасибо @CaptJak .. вы можете уточнить, как это сделать в коде? – kate

+0

Что сказал CaptKack. Отпустите, установите нуль, а затем создайте новый вид сборщика. – rocky

ответ

5

Надень выше [super viewDidLoad]:

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

Это должно установить pickerview грести индекс 0 y при просмотре представления.

+0

да, его работа @ CaptJak..от вас ... я разместил его после [super viewdidload ] и он работал как шарм – kate

Смежные вопросы