我正在使用UIActionSheet从不同的UITextview调用。 一旦作为日期选择器和值列表。
第二次称为值将与之前的值混淆。
有人可以帮助解决这个问题吗。
- (void)viewDidLoad
{
pickerViewPopup = [[UIActionSheet alloc] initWithTitle:nil
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
pickerView = [[UIDatePicker alloc] initWithFrame: CGRectMake(0, 44, 320, 266)];
catPickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(0, 44, 320, 266)];
[super viewDidLoad];
}
#pragma mark -
#pragma mark - TextField Delegate
- (void)textFieldDidBeginEditing:(UITextField *)aTextField{
[aTextField resignFirstResponder];
switch (aTextField.tag) {
case 1:
[self ShowDatePick];
break;
case 3:
[self ShowCategoryPick];
break;
default:
break;
}
}
-(void) ShowDatePick{
pickerView.datePickerMode = UIDatePickerModeDate;
//pickerView.hidden = NO;
pickerView.date = [NSDate date];
[pickerView addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
[_txtDate setInputView:pickerView];
UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
pickerToolbar.barStyle = UIBarStyleDefault;
[pickerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:space];
UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonPressed:)];
[barItems addObject:cancelBtn];
[pickerToolbar setItems:barItems animated:YES];
[pickerViewPopup addSubview:pickerToolbar];
[pickerViewPopup addSubview:pickerView];
//[self.view addSubview:pickerViewPopup];
[pickerViewPopup showInView:self.view];
[pickerViewPopup setBounds:CGRectMake(0,0,320, 464)];
}
-(void) ShowCategoryPick{
pickerArray = [[NSArray alloc]initWithObjects:@"Chess",
@"Cricket",@"Football",@"Tennis",@"Volleyball", nil];
catPickerView.dataSource = self;
catPickerView.delegate = self;
UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
pickerToolbar.barStyle = UIBarStyleDefault;
[pickerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:space];
UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonPressed:)];
[barItems addObject:cancelBtn];
[pickerToolbar setItems:barItems animated:YES];
[pickerViewPopup addSubview:pickerToolbar];
[pickerViewPopup addSubview:catPickerView];
[pickerViewPopup showInView:self.view];
[pickerViewPopup setBounds:CGRectMake(0,0,320, 464)];
}
答案 0 :(得分:0)
在添加新的子视图之前,您需要从pickerViewPopup
删除以前添加的子视图:
...
[catPickerView removeFromSuperView];
[pickerViewPopup addSubview:pickerView];
...
和
...
[pickerView removeFromSuperView];
[pickerViewPopup addSubview:catPickerView];
...