Question

Je voudrais faire popover voir visibles lorsque l'utilisateur passe de la vue du paysage à la vue portrait dans UIsplitView de l'iPad. Bien que l'utilisateur peut le rendre visible en cliquant sur le bouton de la barre mais je veux que ce soit automatisé pour le mode portrait.

Était-ce utile?

La solution

Inside - Méthode « (BOOL) de shouldAutorotateToInterfaceOrientation », pour vérifier le dispositif orientation.If il est portrait, puis Présentez popover comme vous le faites pour le rendre visible lorsque le bouton de la barre utilisateur clique

.

Bonne chance.

Autres conseils

UISplitViewController envoie des messages à son délégué (UISplitViewControllerDelegate). Vous pouvez mettre en œuvre ces méthodes de délégués pour montrer la popover. Vous pouvez faire quelque chose comme ça dans votre code « contrôleur de détail »:

#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 réponse acceptée (en utilisant shouldAutorotateToInterfaceOrientation) ne fonctionne pas pour moi. Il a soit des artefacts de rotation (dans 4,2 et 5,0 iPad simulateurs) ou seulement des spectacles au démarrage et plus jamais dans les rotations ultérieures (le simulateur 4.3). Ce que je faisais la place était de créer une petite fonction d'aide:

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

et appeler cela dans - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation et - (void)viewDidLoad pour gérer aussi au démarrage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top