SwiftUI - открытие представления навигации с кнопкой «Назад» и наполовину серым экраном / странное поведение

Я пытаюсь добавить представление навигации в свое приложение, но это вызывает проблемы. Мой основной интерфейс - это карусель страниц, которую можно пролистывать бесконечно. Изначально это выглядит так:  перелистываемые страницы без режима навигации

Затем, когда я помещаю его в вид навигации, он открывается вот так, с кнопкой «Назад» и никак иначе: введите описание изображения здесь

Когда я нажимаю кнопку "Назад", это выглядит так:  введите описание изображения здесь

Левая сторона поддерживает смахивание, как и исходный пользовательский интерфейс, но когда я касаюсь правой серой стороны, я возвращаюсь на пустую страницу с помощью кнопки «Назад».

Есть идеи, что может быть причиной этого? Я реализовал бесконечную карусель, поместив каждую страницу в ZStack и используя offsets / relativeLocation. Я сослался на этот учебник: https://www.youtube.com/watch?v=fB5MzDD1PZI < / а>

Могу я не использовать NavigationView? Есть ли альтернативный маршрут, по которому я могу создать свой собственный верхний NavBar и перейти к отдельным представлениям без NavigationBar / NavigationLink?

Любая помощь приветствуется, и, пожалуйста, не стесняйтесь задавать вопросы и т. Д. Спасибо!


person adam.code    schedule 17.11.2020    source источник


Ответы (2)


Вы хотите применить StackNavigationViewStyle к своему NavigationView.

NavigationView {

...

}.navigationViewStyle(StackNavigationViewStyle())

Вы столкнулись с нежелательным разделением экрана, и дополнительную информацию можно найти здесь.

Для больших устройств, таких как iPad или iPhone Pro Max в альбомной ориентации, по умолчанию используется DoubleColumnNavigationViewStyle.

person aheze    schedule 17.11.2020

Вы можете настроить кнопку на отклонение, и она может сработать, но я не знаю, что вы хотите.

Он вернет вас к предыдущему экрану.

@IBAction func backButton(_ sender: Any) {
    dismiss(animated: true, completion: nil)
}
person profiile_samir    schedule 17.11.2020
comment
OP использует SwiftUI, а не UIKit. - person aheze; 17.11.2020