В чем разница между модальным и Push segue в раскадровках?



может кто-нибудь объяснить мне, в чем именно разница между modal и push segue?



Я знаю, что когда мы используем push segue добавляется в стек, поэтому, когда мы продолжаем использовать push он продолжает занимать память?



может кто-нибудь, пожалуйста, покажите мне, как эти два реализованы?



Modal сегменты могут быть созданы просто ctrl-click и перетаскивание к месту назначения, но когда я делаю это с push мое приложение завершает работу.



Я нажимаю от кнопки к UINavigationController что есть UIViewController.

602   4  

4 ответов:

A push Segue добавляет еще один VC в стек навигации. Это предполагает, что VC, который создает push, является частью того же навигационного контроллера, к которому принадлежит VC, добавляемый в стек. Управление памятью не является проблемой с навигационными контроллерами и глубоким стеком. Пока вы заботитесь об объектах, которые вы можете передавать от одного VC к другому, среда выполнения будет заботиться о стеке навигации. См. изображение для визуального элемента индикация: NavStack

A модальный переход это просто один VC, представляющий другой VC модально. VCs не должны быть частью навигационного контроллера, и VC, представленный модально, обычно считается "дочерним" представляющего (родительского) VC. Модально представленный VC обычно без каких-либо навигационных панелей или вкладок. Представляющий VC также несет ответственность за отклонение модального VC, который он создал и представил.

надеюсь, что это помогает.

Swift 3.0 и обновление XCode 8.2.1

1. Push Segue

Push segue был переименован в показать segue. Чтобы создать push segue, Родительский контроллер вида должен быть встроен в навигационный контроллер. Навигационный контроллер предоставляет панель навигации. Как только вы соедините два контроллера вида с push segue, контроллер дочернего вида автоматически будет иметь панель навигации сверху. Будет добавлен контроллер дочернего вида в верхней части навигационного стека.

enter image description here

Push segue также предоставляет функции по умолчанию. Дочерний контроллер вида будет иметь кнопку Назад, которая возвращает вас к родительскому контроллеру вида. Вы также можете провести вправо, чтобы открыть контроллер дочернего вида. Анимация для push segue похожа на перемещение страниц по горизонтали.

enter image description here

в то время как вы можете сделать толчок segue от контроллера вида, который является не в контроллер навигации, вы потеряете все функции, такие как панель навигации, анимации, жестов и т. д. Когда вы это сделаете. В этом случае вы должны сначала встроить свой родительский контроллер вида внутри контроллера вида навигации, а затем сделать push segue для контроллеров дочернего вида.

enter image description here

2. Модальный Сегмент

модальный сегмент (т. е. присутствует модально), с другой стороны, представляет собой текущий контроллер вида. Маленький контроллер вида не наследует контроллер вида навигации, поэтому панель навигации будет потеряна, если вы представите модальный сегмент от контроллера вида с контроллером вида навигации. Вам нужно снова встроить контроллер дочернего вида в навигационный контроллер и запустить новый стек навигации, если вы хотите его вернуть. Если вы хотите вернуться к контроллеру родительского вида, вы должны реализовать это самостоятельно и вызвать dismiss от код.

enter image description here

анимация для модального segue заключается в том, что контроллер дочернего вида будет подниматься из нижней части страницы. Контроллер вида навигации также исчез в этой демонстрации

enter image description here

вид push должен быть встроен в navigationController.

нажать на master view, затем в строке меню выбрать:

EDITOR->embed in->navigationController

это нажатие элементов управления с помощью пользовательских методов push и segue для раскадровки Story Board

и модальный способ навигации по представлениям без использования раскадровки.

Comments

    Ничего не найдено.