2012-01-31 62 views
4

我有我的代码的问题,我有取消和确认键,而其他的UIAlertViews一个两个代码块做出UIImagePicker多个UIAlertView中的问题

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


} 

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

-(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”按钮(确定),它需要我从照片库上传图片...

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

回答

11

一些方法。

1)

看看如何调用委托方法?

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

alertView参数,你可以知道哪些警示做了呼叫(如果设置cargaImagen和publicaPeticion的alertviews分离实例变量)。

2)

另一个(可能更容易),你可以做的事情是设置你的alertView一个tag属性。

在您的'cargaImagen'方法中,在创建UIAlert后,通过alert.tag = 1;将标记设置为1。

然后,在你的alertView:clickedButtonAtIndex:委托方法中,当alertView.tag == 1,你会知道它来自cargaImagen,如果它是2(或零),你知道它来自publicaPeticion。

+0

非常感谢!现在工作完美:) – ChecoSchnaider 2012-01-31 18:00:54