2011-02-09 21 views
9

Come si può "eseguire il selettore" sul controllore parentview del controllore uipopovetro? Ho uipopovercontroller lanuched da uiviewcontroller, e questo uipopovercontroller include altri uiviewcontroller. Non riesco a raggiungere il controller di visualizzazione genitore dal popover o dal controller di visualizzazione "interno".UIPopovercontroller Parent?

Spero di essere chiari ...

BTW - parentViewcontroller non funziona ...

Grazie!

risposta

8

Non c'è modo di farlo direttamente con UIPopoverController. Si sta andando ad avere per passare probabilmente un riferimento al controller della vista genitore al controller della vista si sta gestendo con un controller 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]; 

Qualcosa del genere, ma il punto importante è che il controller della vista (gestito dal controller popover) deve prendere un riferimento al controller di visualizzazione genitore prima di presentare il popover.

+0

Questo è esattamente quello che pensavo. Se è l'unico modo, lo farò. Grazie! –

+0

@AviTsadok È possibile utilizzare popoverController.delegate – itsji10dra

0

È possibile utilizzare un metodo privato per ottenere un controller popover padre dal controller di visualizzazione.

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