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/