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

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

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

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

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

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

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

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

2 ответа

Решение

Вы хотите подать заявку StackNavigationViewStyle на ваш NavigationView.

NavigationView {

...

}.navigationViewStyle(StackNavigationViewStyle())

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

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

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

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

@IBAction func backButton(_ sender: Any) {
    dismiss(animated: true, completion: nil)
}
Другие вопросы по тегам