Nachdem ich viele Dinge ausprobiert hatte, half mir die Antwort von @chuck-k anständig, meine Probleme mit dem UINavigationController-Popover in iOS7 zu lösen.
Hier ist, was ich getan habe:
für jeden UIViewController im UINavigationController ich den Inhalts Größe berechnen ich in der Methode angezeigt werden soll - (CGSize)contentSizeForViewInPopover
Plus navigationController.navigationBar.frame.size.height
(das ist immer 44 glaube ich). Ich verwende keine andere Popover-Funktionalität in diesen UIViewControllern.
erklärte ich meine UIViewController, die die UINavigationController als UINavigationControllerDelegate
dann in den Delegaten ....
.....
- (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];
}
Die Höhe
schafft check vergleicht die Popover-Inhaltsgröße des aktuellen View-Controllers mit der Inhaltsgröße des Content-Popup-Containers des "eingehenden" Views. Ich benutze
animation = NO wenn von einer
größer -> kleiner Popover Inhalt Größe gehen, weil sonst bekomme ich einige ruckartige Neupositionierung Animation in iOS7. Aber besonders wenn
Animation = NO beim Gehen von einem
kleiner -> größer popover Inhaltsgröße, die
popover Größe auf die Größe erhöhen würde ich erwarteten
aber würde
Inhalt nicht anzeigen größer als die vorher kleinen Inhaltsgröße ... Einstellung
Animation = JA löste dieses Problem für mich. (Ich überprüfe nur die Höhe, weil in meinem Fall die Breite fest ist.)
Mit dieser Technik funktioniert schließlich fast alles zu meiner Zufriedenheit und ich hoffe, dass dies jemand anderem helfen könnte.
jemand? Ich konnte mein Popover immer noch nicht richtig skalieren. es ist einfach, in der Größe zu vergrößern, aber ich kann es nicht bekommen, zu der kleineren ursprünglichen Größe zurückzukehren. – Abbacore
Gute Tagging ist der Weg, um Ihre Frage beantwortet zu bekommen :) – skaffman