Ich habe einige Probleme, herauszufinden, die tatsächliche Struktur eines UINavigationController. Ich möchte es so einschränken, dass seine Ansicht der bevorzugten Größe der Ansicht des obersten Controllers entspricht.Beschränken Sie die Größe der UINavigationView auf die Größe des aktuell dargestellten Controllers?
Etwas wie:
navController.view.heightAnchor.constraint(equalTo: navController.topViewController?.view.heightAnchor).isActive = true
gibt mir den Fehler:
*** Terminating app due to uncaught exception 'NSGenericException',
reason: 'Unable to activate constraint with anchors
<NSLayoutYAxisAnchor:0x600000472e00 "UILayoutContainerView:0x7f9f01d14310.top">
and <NSLayoutYAxisAnchor:0x608000270ac0 "UIView:0x7f9f01d182b0.top">
because they have no common ancestor. Does the constraint or its anchors
reference items in different view hierarchies? That's illegal.'
Anscheinend ist der Ansicht ist Top-Controller in einer anderen Hierarchie. Wie ist das möglich? Wie kann ich mein Ziel erreichen, einen UINavigationController ohne Vollbildschirm zu erstellen? Bitte schlagen Sie keinen Hack vor, der die untere Hälfte des Kind-Controllers leer oder so macht.
Wie stellen Sie 'navController.topViewController? .view.heightAnchor' ein? – DonMag
Es ist Kind Ansichten bestimmen seine Höhe. – GoldenJoe
Also ... der Root View Controller Ihres Nav Controllers hat eine Subview mit einer '.height' Einschränkung? Wo/wie wird diese Höhenbeschränkung eingestellt? – DonMag