как по-прежнему показывать панель навигации при использовании segue в полноэкранном модальном стиле презентации? - PullRequest
1 голос
/ 24 февраля 2020

за последний год я не создавал приложение iOS, потому что мне нужно сосредоточиться на Android разработке. и есть много изменений в iOS 13 разработке

У меня есть несколько VC в контроллере навигации, как это enter image description here

, когда я использую pu sh переходят из VC1 в VC2 и обратно в VC1 , тогда это будет похоже на карты, подобные этой. Вот код, который я использую, когда нажимается кнопка в первом V C

@IBAction func createEventButtonDidPressed(_ sender: Any) {

    // do some actions first and then
    performSegue(withIdentifier: "chooseEventName", sender: nil)
}

enter image description here

Я пытался прочитать это Представление модального режима в iOS 13 полноэкранном режиме , поэтому я делаю полноэкранный модальный переход следующим образом:

enter image description here

, но при этом панель навигации будет отображаться в VC2 (этот синий v c) не будет отображаться.

Я пытался выбрать в качестве «Полупрозрачная панель навигации» enter image description here

, но когда Я запускаю приложение, я не могу получить эту панель навигации во втором V C, панель навигации не отображается при использовании полноэкранного модального перехода

Мне действительно нужно поведение точно такое же, прежде чем iOS 13. как использовать pu sh segue и панель навигации все еще наверху, не похожа на карты

как это сделать?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

Если вы вставите VC2 в его собственный контроллер навигации, он будет отображаться вместе с панелью навигации. Таким образом, ваше представление должно выглядеть следующим образом: UINav-> VC1-> UINav-> VC2

При представлении представления в полноэкранном и модальном режимах все предыдущие контроллеры навигации не образуют часть нового стека.

0 голосов
/ 24 февраля 2020

Давайте тогда немного поменяем sh ваш разум на iOS.

PU SH требует navigationController. Это заставляет новый экран скользить к передней стороне. Если нет навигационного контроллера, то вместо этого новый экран будет представлен модально. Мы используем POP в коде, если мы хотим, чтобы новый экран отображался и пользователь go возвращался к предыдущему экрану.

PRESENT не требует navigationController. Это заставляет новый экран скользить вверх. Мы используем DISMISS в коде, если мы хотим отклонить его. Вы можете добавить навигационный контроллер на следующий экран, если он вам нужен.

А что нового в iOS 13.0, когда дело доходит до представления экранов? По умолчанию экраны теперь будут отображаться как карты, а не в полноэкранном режиме.

Возвращаясь к вашей проблеме:

Мне действительно нужно поведение точно такое же, как и до iOS 13. например, использование pu sh segue и навигационная панель все еще наверху, не похожая на карты

Вам нужно будет использовать PU SH not PRESENT . Нажмите на этот переход еще раз и выберите SHOW (это эквивалент pu sh в Interface Builder). А также нажмите на этот VC1 и выберите меню редактора Xcode, Embed In и нажмите NavigationController.

...