2017-07-21 3 views
0

Ich habe eine UIView, die in einem NavigationController eingebettet ist. Wenn der Benutzer auf eine Zelle in einem TableView klickt, wird er zu dem UIView gebracht. Jedoch springt die UIView von unten heraus, anstatt von der rechten Seite herauszurutschen. Ich habe das Segment auf Show eingestellt, also bin ich nicht sicher, warum es das tut.Navigation Controller mit TableView

enter image description here

+0

Ist der TableView Controller * auch * im Navigationscontroller eingebettet? – BaseZen

+0

Es ist in einem anderen Navigationscontroller eingebettet. –

+1

Deshalb funktioniert es nicht. – BaseZen

Antwort

2

Der Einschub von der Seite Verhalten funktioniert nur, wenn alle untergeordneten Navigationscontroller Kinder der gleichen UINavigationController sind. Diese Anforderung umfasst das "root" oder das erste Kind. In Ihrem Fall ist das Root-Kind der UITableViewController.

es so in der Storyboard aussehen:

UINavVC ---> RootChildVC ---> SecondChildVC ---> ThirdChildVC usw.

A zeigen segue kontextuellen ist. Wenn es wie im obigen Diagramm ist, wird es eine horizontale Folie sein.

überhaupt In jeder anderen Situation, eine handgezeichnete segue zwischen zwei beliebigen VCs einschließlich, ein zeigen als modal Präsentation interpretiert wird, die aus dem Boden kommt und wieder nach unten gleiten. Sie erhalten auch nicht die automatische Installation der "Zurück" -Schaltfläche, da keine "Navigations" -Beziehung erkannt wird.

Sie sind wahrscheinlich verwirrt und müssen Ihr Storyboard in das obige einfache Idiom umwandeln. Wenn Sie zwischen "Cousins", die VCs sind, deren direkte Eltern verschiedene UINavigationControllers sind, segeln, fallen sie unter "jeder anderen Situation".

0

Ein Navigationscontroller sollte nicht in einen anderen Navigationscontroller eingebettet sein.
Entfernen Sie die Root View-Beziehung zwischen View und NavigationController, löschen Sie den NavigationController und legen Sie "show" segue direkt von TableView auf diese Ansicht fest.

Verwandte Themen