2017-07-21 1 views
0

J'ai un UIView qui est intégré à l'intérieur d'un NavigationController. Lorsque l'utilisateur clique sur une cellule dans un TableView, il est pris pour le UIView. Cependant, le UIView sort du bas au lieu de glisser du côté droit. J'ai le jeu réglé à Montrer, donc je ne suis pas sûr de savoir pourquoi il le fait.Contrôleur de navigation avec TableView

enter image description here

+0

Le contrôleur TableView * est-il également intégré au contrôleur de navigation? – BaseZen

+0

Il est intégré dans un contrôleur de navigation différent. –

+1

Voilà pourquoi ça ne marche pas. – BaseZen

Répondre

2

Le comportement du côté insérable ne fonctionne que lorsque tous les contrôleurs de navigation des enfants sont des enfants du même UINavigationController. Cette exigence inclut la "racine", ou d'abord, l'enfant. Dans votre cas, l'enfant racine est UITableViewController.

Il ressemblera à ceci dans Storyboard:

UINavVC ---> RootChildVC ---> SecondChildVC ---> ThirdChildVC etc.

A montrent Segue est contextuel. Si c'est comme dans le diagramme ci-dessus, ce sera une diapositive horizontale.

Dans toute autre situation du tout, y compris un Segue dessiné à la main entre deux VCs arbitraires, un montrent est interprété comme une présentation modale qui vient du fond et glisse vers le bas. Vous n'obtenez pas non plus l'installation automatique du bouton "retour" car aucune relation de "navigation" n'est détectée.

Vous êtes probablement confus et devez refaire votre Storyboard dans l'idiome simple ci-dessus. Si vous êtes entre les "cousins" VCs dont les parents directs sont différents UINavigationControllers, ils tombent sous "toute autre situation".

0

Un contrôleur de navigation ne doit pas être intégré à un autre contrôleur de navigation.
supprime la relation d'affichage racine entre View et NavigationController, supprime le NavigationController et définit "show" segue directement de TableView à cette vue.