У меня отлично работает 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];
}
Вы пытались настроить pickerview на nil в 'viewDidLoad'? – CaptJak
спасибо @CaptJak .. вы можете уточнить, как это сделать в коде? – kate
Что сказал CaptKack. Отпустите, установите нуль, а затем создайте новый вид сборщика. – rocky