多个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。