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 segue est ajoutée à une pile, alors quand nous continuons à l'utiliser, push
elle occupe toujours de la mémoire?
Quelqu'un peut-il me montrer comment ces deux éléments sont mis en œuvre?
Modal
les segues peuvent être créés simplement ctrl-clicket en les faisant glisser vers la destination, mais lorsque je fais cela, push
mon application se bloque.
Je pousse d'un bouton à un UINavigationController
qui a un UIViewController
.
la source
Mise à jour de Swift 3.0 et XCode 8.2.1
1. Appuyez sur Segue
Push segue a été renommé Show segue. Pour créer un 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 connectez deux contrôleurs de vue avec push segue, le contrôleur de vue enfant aura 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 de retour qui vous ramènera au contrôleur de vue parent. Vous pouvez également balayer vers la droite pour faire apparaître le contrôleur de vue enfant. L'animation pour push segue est comme faire glisser des pages horizontalement.
Bien que vous soyez autorisé à effectuer un push segue à partir d'un contrôleur de vue qui n'est pas dans un contrôleur de navigation, vous perdrez toutes les fonctionnalités telles que la barre de navigation, l'animation, les gestes, etc. lorsque vous le faites. Dans ce cas, vous devez d'abord intégrer votre contrôleur de vue parent dans le contrôleur de vue de navigation, puis effectuer une transition vers les contrôleurs de vue enfants.
2. Modal Segue
Un segment modal (c'est-à-dire présent de façon modale), d'autre part, se présente sur le contrôleur de vue actuel. Le contrôleur de vue enfant n'héritera pas du contrôleur de vue de navigation, de sorte que la barre de navigation sera perdue si vous présentez une séquence modale à partir d'un contrôleur de vue avec contrôleur de vue de navigation. Vous devez à nouveau incorporer le contrôleur de vue enfant dans le contrôleur de navigation et démarrer une toute 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 la séquence modale est que le contrôleur de vue enfant apparaîtra du bas de la page. Le contrôleur de vue de navigation a également disparu dans cette démo
la source
La vue push doit être intégrée dans un fichier
navigationController
.Cliquez sur votre
master view
, puis dans la barre de menu choisissez:la source
pushView
peut également être construit SANSnavigationController
et cette réponse est incomplète!Il s'agit de pousser les contrôles à l'aide de méthodes personnalisées push et segue pour le storyboard
Et Modal est un moyen de naviguer dans les vues sans utiliser de storyboards.
la source