0

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.

+0

Wie stellen Sie 'navController.topViewController? .view.heightAnchor' ein? – DonMag

+0

Es ist Kind Ansichten bestimmen seine Höhe. – GoldenJoe

+0

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

Antwort

0

How can I achieve my goal of creating a non-full screen UINavigationController?

Zwei einfache Möglichkeiten:

  • präsentiert die Navigationssteuerung als präsentierte View-Controller und die Präsentation anpassen. (A popover ist ein Beispiel, übrigens: die Navigationssteuerung nicht selbst bevorzugte Größe des zu seinem Kind der Größe.)

  • Sie einen übergeordneten View-Controller, und macht den Navigation-Controller sein Kind.

In beiden Ansätzen liegt die Ansichtsgröße des Navigationscontrollers ganz bei Ihnen.

Verwandte Themen