多个UIAlertView问题

我有我的代码问题,我有两个代码的UIAlertViews与取消和确定button,另一个做一个UIImagePicker

-(IBAction)publicaPeticion { if([txtPeticion hasText] ) { UIAlertView *alerta = [[UIAlertView alloc] initWithTitle:@"Confirmación de Compra" message:@"Deseas comprar la petición por $12.00" delegate:self cancelButtonTitle:@"Cancelar" otherButtonTitles:@"Aceptar", nil]; [alerta show]; } } 

问题出在publicaPeticion和cargaImagen之间

 -(IBAction)cargaImagen { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Subir una imagen" message:@"¿De donde deseas subir una imagen?" delegate:self cancelButtonTitle:@"Cancelar" otherButtonTitles:@"Desde el equipo",@"Tomar con camara", nil]; [alert show]; } 

也是我的方法,从照片stream或相机获取图像的来源

 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if(buttonIndex == 1) { picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentModalViewController:picker animated:YES]; } if(buttonIndex ==2) { picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypeCamera; [self presentModalViewController:picker animated:YES]; } } 

问题是,当我按“Aceptar”button(确定),它把我从照片库的上传图片…

也许是一个有点愚蠢的问题,但我怎么能区分它?

一些方法。

1)

看看如何调用委托方法?

 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 

alertView参数中,可以知道哪个警报执行了调用(如果您将cargaImagen和publicaPeticion的警报视图设置为分开的实例variables)。

2)

另一个(也许更容易),你可以做的是在你的alertView上设置tag属性。

在你的'cargaImagen'方法中,在创buildUIAlert之后,通过alert.tag = 1;将标签设置为alert.tag = 1;

然后,在alertView:clickedButtonAtIndex: delegate方法中,当alertView.tag == 1 ,您将知道它来自cargaImagen,如果它是2(或零),您知道它来自publicaPeticion。