Può un UIPopoverController ottenere la sua dimensione da NIB la sua vista del controller?
-
27-09-2019 - |
Domanda
Ho creato un controller visualizzazione personalizzata che viene inizializzato con un pennino. Nel NIB, ho dato la vista presa di una dimensione specifica. Quando creo un nuovo controller popover e inizializzarlo con il mio controller visualizzazione personalizzata, mi aspettavo area del contenuto del controller popover essere la dimensione della vista ho specificato nella mia NIB, ma sembra ignorare queste dimensioni e con il controller di default popover dimensioni, invece.
So che posso specificare le dimensioni dell'area di contenuto del popover nel codice, ma non dovrei essere in grado di fare questo in Interface Builder?
Nel metodo viewDidAppear mia abitudine di controller della vista, sto stampando Certamente della vista larghezza e l'altezza, ma stranamente sono entrambi 0. Che cosa sto facendo di sbagliato?
Soluzione
Non è possibile specificare contentSizeForViewInPopover
di un UIViewController nel pennino. Mi piace mettere in viewDidLoad
.
Il tuo "mostrando" codice potrebbe essere solo sbagliato. E 'facile da ottenere scattato dalle belle punti di chiamare NSLog. Prova in questo modo:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"%@", NSStringFromCGSize(self.view.bounds.size));
}
Se questo non funziona, qualcosa sta succedendo.
Altri suggerimenti
Si è possibile farlo da uno storyboard da:
- Imposta la dimensione della vista di base nel controller della vista.
- Nella controller della vista è possibile specificare una dimensione esplicita (che sarà popolato per impostazione predefinita quando si dà il vista una dimensione), ecco un immagine:
Caveat: Ho 2 popovers sto lavorando in questo momento - il primo si comporta molto bene (anche ottenuto center'd sullo schermo utilizzando inserti), la seconda Ho appena trascorso una mezza giornata chiedendo perché è la larghezza destra e l'altezza sbagliata .... grrrr, se non si imposta una direzione freccia roba strana che accade.