Multiple issue with UIAlertView

I have a problem with my code, I have two blocks of UIAlertViews code with a cancel button and ok, and the other to create a 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]; } } 

The problem is between publicaPeticion and 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]; } 

as well as my method of obtaining an image source, from a photo stream or from a camera

 -(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]; } } 

the question is that when I click the "Aceptar" (OK) button, it takes me to a downloadable image from the photo library ...

maybe a little silly question, but how can I tell it apart?

+4
source share
1 answer

A couple of ways.

one)

See how the delegate method is called?

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

In the alertView parameter alertView you can specify which of the alerts caused the call (if you specify warnings for cargaImagen and publicaPeticion to separate instance variables).

2)

Another (and probably simpler) thing you can do is set the tag property in your alertView.

In your method "cargaImagen" and immediately after creating the UIAlert, set the tag to 1 via alert.tag = 1; .

Then in your delegate method alertView:clickedButtonAtIndex: when alertView.tag == 1 , you know that it comes from cargaImagen, and if it is 2 (or zero), you know that it comes from publicaPeticion.

+11
source

Source: https://habr.com/ru/post/1394027/


All Articles