web-dev-qa-db-fra.com

Quelle est la différence entre Modal et Push segue dans les Storyboards?

Quelqu'un peut-il m'expliquer quelle est la différence exacte entre modal et Push segue?

Je sais que lorsque nous utilisons Push la séquence est ajoutée à une pile, donc lorsque nous continuons à utiliser Push elle continue d'occuper la mémoire?

Quelqu'un peut-il s'il vous plaît me montrer comment ces deux sont mis en œuvre?

Modal les séquences peuvent être créées simplement ctrl-click et en faisant glisser vers la destination, mais lorsque je le fais avec le Push mon application se bloque.

Je pousse d'un bouton à une UINavigationController qui a un UIViewController.

176
Gaurav_soni

Un Push Segue ajoute un autre VC à la pile de navigation. Cela suppose que VC à l'origine du Push soit partie du même contrôleur de navigation que le VC ajouté à la pile. La gestion de la mémoire n'est pas un problème avec les contrôleurs de navigation et une pile profonde. Tant que vous vous occupez d'objets que vous passez peut-être d'un VC à un autre, le moteur d'exécution s'occupe de la pile de navigation. Voir l'image pour une indication visuelle: NavStack

Un segment modal est juste un VC présentant un autre VC de manière modale. Les VC ne doivent pas nécessairement faire partie d'un contrôleur de navigation et le VC présenté sous forme modale est généralement considéré comme un "enfant" du VC présenté (parent). Le VC présenté modalement est généralement sans barre de navigation ni barre de tabulation. Le VC présentateur est également responsable du rejet du modal VC qu'il a créé et présenté.

J'espère que cela t'aides.

172
LJ Wilson

Mise à jour de Swift 3.0 et XCode 8.2.1

1. Push Segue

Push Segue a été renommé en Show segue. Pour créer Push Segue, le contrôleur de vue parent doit être intégré au contrôleur de navigation. Le contrôleur de navigation fournit une barre de navigation. Une fois que vous avez connecté deux contrôleurs de vue avec Push segue, le contrôleur de vue enfant a automatiquement une barre de navigation en haut. Le contrôleur de vue enfant sera ajouté au-dessus de la pile de navigation.

enter image description here

Push Segue fournit également des fonctionnalités par défaut. Le contrôleur de vue enfant aura un bouton Précédent qui vous ramènera au contrôleur de vue parent. Vous pouvez également glisser à droite pour faire apparaître le contrôleur de vue enfant. L'animation pour Push segue est comme glisser des pages horizontalement.

enter image description here

Lorsque vous êtes autorisé à créer une séquence Push à partir d'un contrôleur de vue qui ne se trouve pas dans un contrôleur de navigation, vous perdrez toutes les fonctionnalités telles que la barre de navigation, l'animation, les gestes, etc. Dans ce cas, vous devez d'abord intégrer votre contrôleur de vue parent au contrôleur de vue de navigation, puis faire passer les contrôleurs Push segue aux vues de l'enfant.

enter image description here

2. Segue modal

Une séquence modale (c'est-à-dire présente modale), d'autre part, présente sur le contrôleur de vue actuel. Le contrôleur de vue enfant n'héritant pas du contrôleur de vue de navigation, la barre de navigation sera donc perdue si vous présentez la séquence modale à partir d'un contrôleur de vue avec contrôleur de vue de navigation. Vous devez incorporer à nouveau le contrôleur de vue enfant dans le contrôleur de navigation et démarrer une nouvelle pile de navigation si vous le souhaitez. Si vous souhaitez revenir au contrôleur de vue parent, vous devez l'implémenter vous-même et appeler dismiss à partir du code.

enter image description here

L'animation pour le segment modal consiste en ce que le contrôleur de vue enfant monte au bas de la page. Le contrôleur de vue de navigation est également parti dans cette démo

enter image description here

16
Fangming

La vue Push doit être construite dans un navigationController.

Cliquez sur votre master view, puis dans la barre de menus, choisissez:

EDITOR->embed in->navigationController
6
Simone Pistecchia

Cela consiste à utiliser des méthodes personnalisées Push et Segue pour le storyboard. Story Board

Et Modal est un moyen de naviguer dans les vues sans utiliser les Storyboards.

1
Pushkraj