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
.
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:
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.
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.
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.
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.
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.
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
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
Cela consiste à utiliser des méthodes personnalisées Push et Segue pour le storyboard.
Et Modal est un moyen de naviguer dans les vues sans utiliser les Storyboards.