Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

multiple UIAlertView issue

I have an issue with my code, I have two blocks of code of UIAlertViews one with cancel and ok button, and the other to make 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 issue 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];


}

and also my method to get the source of the image, from the photo stream or from the 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 press "Aceptar" button (OK), it takes me to the upload picture from the photo library...

maybe is a little bit silly the question but how can I differentiate it?

like image 971
ChecoSchnaider Avatar asked Dec 22 '22 02:12

ChecoSchnaider


1 Answers

A couple ways.

1)

See how the delegate method is called?

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

From the alertView parameter, you can tell which alert did the calling (if you set cargaImagen and publicaPeticion's alertviews to separate instance variables).

2)

Another (and probably easier) thing you could do is to set a tag property on your alertView.

In your 'cargaImagen' method and right after you create the UIAlert, set the tag to 1 via alert.tag = 1;.

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

like image 178
Michael Dautermann Avatar answered Jan 14 '23 10:01

Michael Dautermann