UIActionSheet与之前的值混淆了

时间:2014-05-21 15:14:55

标签: ios uiactionsheet

我正在使用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)];
}

Mixed up UIActionSheet

1 个答案:

答案 0 :(得分:0)

在添加新的子视图之前,您需要从pickerViewPopup删除以前添加的子视图:

...
[catPickerView removeFromSuperView];
[pickerViewPopup addSubview:pickerView];
...

...
[pickerView removeFromSuperView];
[pickerViewPopup addSubview:catPickerView];
...