Possible Duplicate:
multiple UIAlertView issue




我是初学者ios开发人员。我面临以下问题:

在我的应用程序中有一个带有2个UIAlertView的viewController。其中一个具有UIdatePicker,另一个具有UIPickerView。换句话说-它们是不同的,具有不同的组件和各种处理算法。

并且他们必须具有不同的处理程序。但是我不知道如何在一个viewController上使用“ delegate:self”创建不同的处理程序。

我这样做:

-(IBAction)alertDataPicker:(id)sender
{
    selectPickerController *dataPicker=[[selectPickerController alloc] initWithTitle:@"" message:@"" delegate:self cancelButtonTitle:@"Отмена" otherButtonTitles:@"Сохранить", nil];
    NSError *err;
    NSFetchRequest *fetch = [[NSFetchRequest alloc] initWithEntityName:@"Authors"];
    dataPicker.data = [self.context executeFetchRequest:fetch error:&err];
    [dataPicker show];

}

-(IBAction)alertDatePicker:(id)sender
{
    datePickerALertControllerViewController *pickerAlertView = [[datePickerALertControllerViewController alloc] initWithTitle:@" " message:@" " delegate:self cancelButtonTitle:@"Отмена" otherButtonTitles:@"Сохранить", nil];
    pickerAlertView.datePickerView.date=[self stringToDate:createDate.text];
    [pickerAlertView show];
}

#pragma mark UIAlertViewDelegate
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSLog(@"qwe");
    //NSLog(@"%@",alertView.datePickerView.date);
    //createDate.text =[self dateToString:alertView.datePickerView.date];
    //NSLog(@"date %@...%@",date,alertView.datePickerView.date);
}


但是xCode表示UIAlertView不具有“ datePickerView”
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
但是,如果指定出现的类对象,则另一个类的对象的属性也会出现类似的问题。

如何创建与UIAlertView不同的处理程序,或者如何确定调用此方法的对象的类,并取决于它使用不同的算法?

在此先感谢您的帮助和建议。

最佳答案

您需要在每个tag中添加UIAlertView以便在调用委托方法时区分它们。请参见my answer here

另一种方法是检查委托的alertView是否等于您的UIAlertView控件之一:

if ([alertView isEqual:myAlertView]) { ... }

关于iphone - 在一个 View 中有几个UIAlertView:如何创建不同的委托(delegate),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9871350/

10-14 21:56