Auf iOS 8 habe ich ein merkwürdiges Verhalten bezüglich der Navigationsleiste und der Ausrichtung.
Ich habe einen Navigationscontroller, der eine unterstützte Schnittstellenausrichtung UIInterfaceOrientationMaskLandscapeRight
meldet. Die Navigationsleiste hat die erwartete Höhe für die Querformatausrichtung (leider bin ich nicht berechtigt, Screenshots zu posten).
Dann initiiere ich eine modale Präsentation eines View-Controllers, der nur UIInterfaceOrientationMaskPortrait
unterstützt. Wenn die Präsentationsanimation gestartet wird, scheint es so zu sein, dass die Metriken des zugrunde liegenden Navigationscontrollers in eine Porträtdarstellung geändert werden, da die Höhe der Navigationsleiste auf die Hochformatgröße ansteigt, wie oben dargestellt.
iOS 7 zeigt dieses Verhalten nicht. Was vermisse ich? Ich möchte das alte Verhalten wiederherstellen.
Hier ist der vollständige Code des obigen einfachen Beispiels:
%Vor%In einem komplexeren Setup erlebe ich auch, dass der Text in einem UIWebView, das im Navigationscontroller enthalten ist, hochskaliert wird, wenn das Portrait-Modal dargestellt wird. Wenn Sie das Modal ablehnen, wird der Text nicht auf seine ursprüngliche Größe geändert.
Aus Mangel an einer besseren Option habe ich ein bisschen einen Hack dafür gemacht. Bevor ich die modale Ansicht zeige, mache ich einen Screenshot und lege ihn über den präsentierenden View-Controller.
Offensichtlich muss ich diesen Screenshot entfernen, wenn die Ansicht wieder erscheint
%Vor%Tags und Links ios8 uiviewcontroller uinavigationcontroller presentviewcontroller