2010-11-22 5 views
2

J'ai créé un contrôleur de vue personnalisé initialisé à l'aide d'une NIB. Dans le NIB, j'ai donné au point de vue une taille spécifique. Lorsque je crée un nouveau contrôleur popover et l'initialise avec mon contrôleur de vue personnalisé, je m'attendais à ce que la zone de contenu du contrôleur popover corresponde à celle de mon NIB, mais il semble ignorer cette taille et utiliser le contrôleur popover par défaut taille à la place.Un UIPopoverController peut-il obtenir sa taille à partir de sa NIB de contrôleur de vue?

Je sais que je peux spécifier la taille de la zone de contenu de la popover dans le code, mais ne devrais-je pas être capable de le faire dans le constructeur de l'interface? Dans ma méthode viewDidAppear du contrôleur personnalisé, j'imprime la largeur et la hauteur de la vue, mais étrangement, ils sont tous deux à 0. Qu'est-ce que je fais de mal?

Répondre

3

Vous ne pouvez pas spécifier le contentSizeForViewInPopover d'un UIViewController dans la pointe. J'aime le mettre en viewDidLoad.

Votre code d'impression pourrait être incorrect. Il est facile de se faire tromper par les points d'appel de NSLog. Essayez de cette façon:

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    NSLog(@"%@", NSStringFromCGSize(self.view.bounds.size)); 
} 

Si cela ne fonctionne pas, quelque chose d'autre se passe.

1

Oui, vous pouvez le faire à partir d'un story-board par:

  1. Définissez la taille de la vue racine dans le contrôleur de vue.
  2. Dans le contrôleur de vue, vous pouvez spécifier une taille explicite (qui sera rempli par défaut lorsque vous donnez votre point de vue taille), voici une photo:

Xcode screenshot

caveat: J'ai 2 popovers Je travaille en ce moment - le premier se comporte très bien (je l'ai même centré sur l'écran avec des inserts), le second je viens de passer une demi-journée à me demander pourquoi c'est la bonne largeur et la mauvaise hauteur. ... grrrr, si vous ne définissez pas une direction de la flèche, des choses étranges se produisent.

Questions connexes