Ich mache eine App, bei der das iPad sowohl im Quer- als auch im Hochformat verwendet werden kann. Die Konfiguration meines UIViewControllers ist die folgende:UIViewController aktualisiert die Einschränkungen der Ansicht nicht, wenn sich die Geräteausrichtung ändert
I eine UIViewController
mit einem UICollectionView
haben, die die folgenden Bedingungen aufweist: oben vorangestellten und unteren Satz mit seiner Super (der Super das ist UIView
meiner UIViewController
).
Wenn ich eine Zelle tippe, drücke ich eine weitere UIViewController
in der UINavigationController
, die eine DetailansichtController der Zelle ist. Einfach.
Wenn ich die Geräteausrichtung im ersten View-Controller ändere, werden die Grenzen UICollectionView
richtig eingestellt.
Hier kommen meine Problem:
Wenn ich eine Zelle in der UICollectionView
auswählen, wird das zweite Detail Viewcontroller angezeigt. Wenn ich dann in diesem zweiten ViewController die Geräteausrichtung ändere und dann wieder in den ersten viewController gehe, wurde die Ansicht meines UIViewController
nicht gedreht. Ich weiß nicht warum, ich habe dies ohne Erfolg versucht:
self.view.layoutIfNeeded()
in viewDidAppear()
meiner FirstViewController Constraints nach der aktuellen Ausrichtung zu aktualisieren, hat es nicht funktioniert. Das hat nicht funktioniert, weil mir eins aufgefallen ist:
Die Rahmenansicht meines ersten ViewControllers ist immer noch dieselbe wie die vorherige Ausrichtung, es hat sich nicht geändert ... Aber wenn ich das Gerät wieder drehe, erkennt das UIViewController
Die Ausrichtung ändert sich und die Ansichtsgrenzen sind ordnungsgemäß festgelegt.
Also mein Problem ist: Wenn ich in der zweiten Ansicht Controller bin, und dass ich das Gerät drehen, und dann gehe ich zurück in der vorherigen Ansicht Controller, der vorherige Controller hat nicht die Ausrichtung Änderung erkannt Ich habe gerade in der zweiten Ansicht Controller gemacht.
GIF Demo:
Danach habe ich eine Rotation von Hochformat auf Querformat gemacht, die Ansichtnicht als Debug-Ansicht Hierarchie Werkzeug geändert zeigt unter:
Die UIView
ist immer noch im Porträt, so die UICollectionView
constraint's kann nicht mit der neuen Ausrichtung aktualisiert werden ...
Irgendwelche Ideen?