11

así que tengo una UIPopoverController lo alberga mi UINavigationController donde tengo mi UITableViewController sin embargo uno de mis opciones en el UITableView es ir y seleccione una imagen con el UIImagePickerController ... ahora en el iPhone simplemente puedo usar presentModalViewController:animated: embargo llamando que desde dentro de un UIPopoverController provoca un accidente, así que eso no es posible ...Mostrando UIImagePickerController en UIPopoverController con UINavigationController existente (la adición de botón de retroceso)

también sé la UIImagePickerController necesita su propio UINavigationController por lo que no se puede simplemente empujar pushViewController:animated: ya sea ..

por lo que pensé que si me quedo con un enlace a la UIPopoverController creé, puedo entonces utilizar setContentViewController:animated: para cambiar a viewController del UIImagePickerController ...

Sin embargo, ahora estoy atascado en dar al usuario una forma de volver a la anterior UINavigationController ya que necesito para poder agregar un botón de cancelación a la UIImagePickerController, pero cuando trato de hacerlo de la cancela no conseguirá agregado botón ...

Heres mi código que estoy usando

-(void)doPhotoalbums { 
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { 

     UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
     [imagePicker setDelegate:self]; 
     [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
     [imagePicker setContentSizeForViewInPopover:CGSizeMake(320, 480)]; 

     UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:nil]; 
     [imagePicker.navigationItem setLeftBarButtonItem:cancel]; 

     //[self presentModalViewController:imagePicker animated:YES]; 
     [[self parentPopoverController] setContentViewController:imagePicker animated:YES]; 

    } else { 
     [UIAlertView showMessage:@"This device does not have any photo albums."]; 
    } 
} 

Así que mi pregunta es ... ¿Alguien sabe cómo puedo conseguir alrededor de th ¿es? añadiendo un botón de cancelar/retroceder lo que puedo conectar para hacer que los controles de navegación vuelvan a encenderse u otra forma de presentar esto (me gustaría evitar cambiar entre dos UIPopoverControllers pero no sé qué más puedo hacer ...

Gracias

Liam

Respuesta

11

Ahh .. después de un pequeño descanso encontré esto: https://discussions.apple.com/thread/1710435?start=0&tstart=0

utilizando el UINavigationControllerDelegate se puede utilizar el método navigationController:willShowViewController:animated: para acceder a la navigationbar .. entonces con algo de código (por debajo) puede agregar un botón.

if ([navigationController isKindOfClass:[UIImagePickerController class]]) { 

    UINavigationBar *bar = navigationController.navigationBar; 
    UINavigationItem *top = bar.topItem; 

    UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(imagePickerControllerDidCancel:)]; 
    [top setLeftBarButtonItem:cancel]; 

} else { 

    //do non imagePickerController things 

} 
+0

Funciona como un encanto. –

Cuestiones relacionadas