2010-09-15 10 views
4

Je change de vue dans la fenêtre. L'orientation est parfois confuse.L'affichage de l'UIPopoverController au mauvais endroit

Dans l'une des fenêtres, lorsque j'essaie d'afficher un survol qui doit être attaché à un bouton de la barre d'outils, il s'affiche à l'emplacement sur l'écran. Si je change physiquement l'orientation de l'appareil, le popover est redessiné à l'emplacement correct. Si je le remets à nouveau, il est tracé à l'emplacement correct. Si je rejette le popover et essaie de l'afficher à nouveau, il s'affiche de nouveau au mauvais endroit.

Suggestions appréciées.

+0

Lorsque vous affichez le contrôleur de survol à partir de la vue, vous devez d'abord vérifier quelle option vous avez maintenant et en fonction de l'orientation, vous pouvez choisir le cadre et ouvrir le contrôleur de survol à partir de la vue actuelle. Vous pouvez faire comme suit: if (UIAppDelegate.intOrientation == 1) [self.popoverController presentPopoverFromRect: CGRectMake (100,150,570,720) dansView: self.view allowedArrowDirections: NO animé: YES]; else [self.popoverController presentPopoverFromRect: CGRectMake (102,135,820,500) dansView: self.view allowedArrowDirections: NO animé: YES]; – AppAspect

Répondre

1

Lorsque vous affichez le contrôleur de survol à partir de la vue, vous devez d'abord vérifier quelle option vous avez maintenant et en fonction de l'orientation, vous pouvez choisir le cadre et ouvrir le contrôleur de survol à partir de la vue actuelle. Vous pouvez faire comme suit:

if(UIAppDelegate.intOrientation == 1) 
    { 
     popoverController.popoverContentSize = CGSizeMake(570, 720); 
     [self.popoverController presentPopoverFromRect:CGRectMake(100, 150, 570, 720) inView:self.view permittedArrowDirections:NO animated:YES]; 
    } 
    else 
    { 
     popoverController.popoverContentSize = CGSizeMake(820, 500); 
     [self.popoverController presentPopoverFromRect:CGRectMake(102, 135, 820, 500) inView:self.view permittedArrowDirections:NO animated:YES]; 
    } 
1

Problème disparu, je ne sais pas pourquoi. J'avais ouvert un problème avec le support des développeurs Apple. Ils ont regardé mon code et ont trouvé quelques directives non documentées. Il n'était pas nécessaire de mélanger les orientations de l'écran entre les vues en cours de commutation. Demandez-leur de soutenir systématiquement le paysage ou non, portrait ou pas.

Ils ont également indiqué qu'un seul contrôleur devait gérer l'écran à la fois.

Ce problème est survenu avec iOS4.2 sur un iPad. Je ne sais pas si cela s'applique plus.