Dopo aver provato molte cose, la risposta di @ chuck-k mi ha aiutato a risolvere decentemente il mio problema con il popover di UINavigationController in iOS7.
Ecco quello che ho fatto:
per ogni UIViewController all'interno del UINavigationController a calcolare le dimensioni contenuti che desidera visualizzare nella metodo più - (CGSize)contentSizeForViewInPopover
navigationController.navigationBar.frame.size.height
(che è sempre 44 credo). Non uso altre funzionalità di popover in questi UIViewControllers.
ho dichiarato la mia UIViewController che crea l'UINavigationController come UINavigationControllerDelegate
Poi nel delegato ....
.....
- (void)navigationController:(UINavigationController *)navigationController willShowViewController: (UIViewController *)viewController animated:(BOOL)animated {
BOOL popoverAnimation = NO;
if (self.myPopoverController.popoverContentSize.height < viewController.contentSizeForViewInPopover.height) popoverAnimation = YES;
[self.myPopoverController setPopoverContentSize:viewController.contentSizeForViewInPopover animated:popoverAnimation];
}
L'altezza verifica il confronto tra la dimensione del contenuto del popover del controller di visualizzazione corrente e la dimensione del contenuto del popover del controller di visualizzazione "in entrata". Io uso l'animazione = NO passando da una dimensione più grande -> più piccola popover, perché altrimenti ottengo qualche animazione di riposizionamento a scatti in iOS7. Ma particolarmente se animazione = NO quando si passa da un più piccola -> più grande popover la dimensione del contenuto, il popover dimensioni aumenterebbe la dimensione che mi aspettavo, ma non visualizzerebbe contenuti più grande della precedenza più piccolo dimensione del contenuto ... impostazione animazione = SI risolto questo problema per me. (Controllo solo l'altezza perché nel mio caso la larghezza è fissa.)
Utilizzando questa tecnica quasi tutto funziona finalmente per la mia soddisfazione e spero che questo possa aiutare qualcun altro.
qualcuno? Non ho ancora potuto ridimensionare correttamente il mio popover. è facile aumentare di dimensioni ma non riesco a farlo tornare alla dimensione originale più piccola. – Abbacore
Un buon tagging è il modo per ottenere risposta alla tua domanda :) – skaffman