2011-02-09 12 views
9

¿Cómo se puede "realizar el selector" para el control parentviewcontroller del controlador uipopover? Tengo uipopovercontroller lanuched de uiviewcontroller, y este controlador de uipopover incluye otro uiviewcontroller. Parece que no puedo acceder al controlador de vista principal desde el controlador de vistas "interno" o el controlador de vistas "interno".UIPopovercontroller Parent?

espero que estoy siendo claro ...

BTW - parentViewcontroller no funciona ...

Gracias!

Respuesta

8

No hay forma de hacerlo directamente con UIPopoverController. Vas a tener que pasar probablemente una referencia a su controlador de vista de los padres a la vista controlador va a administrar con un controlador popover:

// Assumes these calls are made from within a view controller and that 
// MyViewController has a property called previousViewController 

MyViewController * myViewController = [[[MyViewController alloc] init] autorelease]; 
myViewController.previousViewController = self; 
UIPopoverController * popoverController = [[[UIPopoverController alloc] 
    initWithContentViewController:myViewController] autorelease]; 

UIBarButtonItem * rightBarButtonItem = self.navigationItem.rightBarButtonItem; 
[popoverController presentPopoverFromBarButtonItem:rightBarButtonItem 
          permittedArrowDirections:UIPopoverArrowDirectionDown 
              animated:YES]; 

Algo por el estilo, pero el punto importante es que su controlador de vista (administrado por el controlador popover) tiene que tomar una referencia a su controlador de vista padre antes de presentar el popover.

+0

Eso es exactamente lo que pensaba. Si esa es la única forma, lo haré. Gracias! –

+0

@AviTsadok Puede usar popoverController.delegate – itsji10dra

0

Puede usar un método privado para obtener un controlador padre popover del controlador de vista.

UIPopoverController *popopverController = [self performSelector:@selector(_popoverController)]; 
[popopverController dismissPopoverAnimated:YES]; 
Cuestiones relacionadas