У меня есть 2 текстовых поля. Каждый из них имеет собственное представление выбора. Когда пользователь нажимает на каждый из них, появляется UIPickerView. Все работает. Однако, когда, во-первых, я нажимаю на второе текстовое поле, появляется сборщик для второго текстового поля, а первое текстовое поле принимает результат из этого представления выбора, а не второго. Что-то не так в моем коде. Я не могу понять, что именно. Пожалуйста, помогите ... Заранее спасибо)Два сборщика для 2 текстовых полей в одном представлении
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if (textField == reminder){
choosen = reminderString;
mySheet = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
[mySheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
myArray = [[NSMutableArray alloc]initWithObjects: @"15 minutes",@"20 minutes",@"30 minutes", @"45 minutes",nil];
CGRect pickerFrame = CGRectMake(0,44,0,0);
UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:pickerFrame];
pickerView.delegate =self;
pickerView.dataSource=self;
pickerView.showsSelectionIndicator = YES;
[mySheet addSubview:pickerView];
UIToolbar *controlToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, mySheet.bounds.size.width, 44)];
[controlToolBar setBarStyle:UIBarStyleBlack];
[controlToolBar sizeToFit];
UIBarButtonItem *spaser = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *setButton = [[UIBarButtonItem alloc] initWithTitle:@"set" style:UIBarButtonItemStyleDone target:self action:@selector(DatePickerDoneClick)];
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelRepetition)];
[controlToolBar setItems:[NSArray arrayWithObjects:spaser, setButton, cancelButton,nil] animated:NO];
[mySheet addSubview:controlToolBar];
[mySheet showInView:self.view];
[mySheet setBounds:CGRectMake(0, 0, 320, 485)];
return NO;
}
else if(textField == repetition){
choosen = repetitionString;
repetitionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
[mySheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
myArray = [[NSMutableArray alloc] initWithObjects:@"One-time task",@"Daily",@"Weekly",@"Yearly",nil];
CGRect pickerFrame = CGRectMake(0,44,0,0);
UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:pickerFrame];
pickerView.delegate =self;
pickerView.dataSource=self;
pickerView.showsSelectionIndicator = YES;
[mySheet addSubview:pickerView];
UIToolbar *controlToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, mySheet.bounds.size.width, 44)];
[controlToolBar setBarStyle:UIBarStyleBlack];
[controlToolBar sizeToFit];
UIBarButtonItem *spaser = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *setButton = [[UIBarButtonItem alloc] initWithTitle:@"set" style:UIBarButtonItemStyleDone target:self action:@selector(DatePickerDoneClick)];
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelRepetition)];
[controlToolBar setItems:[NSArray arrayWithObjects:spaser, setButton, cancelButton,nil] animated:NO];
[mySheet addSubview:controlToolBar];
[mySheet showInView:self.view];
[mySheet setBounds:CGRectMake(0, 0, 320, 485)];
return NO;
}
else{
return 0;
}
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return myArray.count;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [myArray objectAtIndex:row];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
if (chosen == reminderString) {
reminderString =[myArray objectAtIndex:row];
[reminder setText:reminderString];
}
else if (chosen == repetitionString){
reminderString =[myArray objectAtIndex:row];
[repetition setText:reminderString];
}
}
- (void)DatePickerDoneClick{
[mySheet dismissWithClickedButtonIndex:0 animated:YES];
}
-(void)cancelRepetition{
[mySheet dismissWithClickedButtonIndex:0 animated:YES];
}
вы можете дать имя для сборщиков, а затем различать их – Purva