Domanda

Mi piacerebbe fare popover visualizzare visibili ogni volta utente passa dalla visualizzazione orizzontale a quella verticale in UIsplitView di iPad. Anche se l'utente può renderla visibile facendo clic sul pulsante della barra ma voglio questo per essere automatizzato per la modalità portrait.

È stato utile?

Soluzione

All'interno - il metodo "(BOOL) shouldAutorotateToInterfaceOrientation", assegno per il dispositivo orientation.If è ritratto, quindi presentarli popover come si fa per averlo reso visibile quando il pulsante utente fa clic bar

.

Tutto il meglio.

Altri suggerimenti

UISplitViewController invia messaggi a un suo delegato (UISplitViewControllerDelegate). È possibile implementare questa metodi delegato per mostrare la popover. Si può fare qualcosa di simile nel codice "Particolare del regolatore":

#pragma mark -
#pragma mark UISplitViewControllerDelegate implementation
- (void)splitViewController:(UISplitViewController*)svc 
     willHideViewController:(UIViewController *)aViewController 
          withBarButtonItem:(UIBarButtonItem*)barButtonItem 
       forPopoverController:(UIPopoverController*)pc
{  
    [barButtonItem setTitle:@"Your 'popover button' title"];
    self.navigationItem.leftBarButtonItem = barButtonItem;
}


- (void)splitViewController:(UISplitViewController*)svc 
     willShowViewController:(UIViewController *)aViewController 
  invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
    self.navigationItem.leftBarButtonItem = nil;
}

La risposta accettata (usando shouldAutorotateToInterfaceOrientation) non funziona per me. Esso ha o artefatti di rotazione (nel iPad simulatori 4.2 e 5.0) o mostra solo all'avvio e mai più di rotazioni successive (il simulatore 4.3). Quello che ho fatto invece era quello di creare un po 'di funzione di supporto:

- (void)showPopoverInPortrait {
    if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait) {
        [self.masterPopoverController presentPopoverFromBarButtonItem:self.navigationItem.leftBarButtonItem
                                             permittedArrowDirections:UIPopoverArrowDirectionAny 
                                                             animated:YES];
    }
}

e chiamare questo all'interno - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation e - (void)viewDidLoad per gestire anche all'avvio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top