NavigationStack заставляет мою кнопку dimiss пропускать второй просмотр [дубликат] ⇐ IOS
-
Anonymous
NavigationStack заставляет мою кнопку dimiss пропускать второй просмотр [дубликат]
"У меня есть три представления: OneView, TwoView и ThreeView.
Я могу перемещаться между ними без каких-либо проблем. Однако когда я нажимаю кнопку закрытия в ThreeView, он возвращается в OneView.
Но если я использую NavigationView, проблем вообще нет." я хочу с ThreeView на TwoView и на OneView
или я ошибаюсь, как использовать NavigationStack?
импортировать SwiftUI структура OneView: Посмотреть { @Environment(\.presentationMode) varpresentationMode @State Private var move = false var body: some View { Навигационный стек { ВСтек { Текст («Один просмотр») Кнопка(действие :{ переместить = правда }) { Текст("Переместить") } .navigationDestination(isPresented: $move) { ДваView() } } .toolbar { ToolbarItem (размещение: .topBarLeading) { Кнопка (действие: { PresentationMode.wrappedValue.dismiss() }) { Круг() .foregroundColor(Цвет("bgButtonBack")) .frame(ширина: 50, высота: 50) .overlay( Изображение (имя системы: «arrow.left») .foregroundColor(Цвет.основной) ) } } } } .navigationBarBackButtonHidden(истина) } } импортировать SwiftUI структура TwoView: Просмотр { @Environment(\.presentationMode) varpresentationMode @State Private var move = false var body: some View { Навигационный стек { ВСтек { Текст("Два представления") Кнопка(действие :{ переместить = правда }) { Текст("Переместить") } .navigationDestination(isPresented: $move) { ТриПросмотр() } } .toolbar { ToolbarItem (размещение: .topBarLeading) { Кнопка (действие: { PresentationMode.wrappedValue.dismiss() }) { Круг() .foregroundColor(Цвет("bgButtonBack")) .frame(ширина: 50, высота: 50) .overlay( Изображение (имя системы: «arrow.left») .foregroundColor(Цвет.основной) ) } } } } } } импортировать SwiftUI структура ThreeView: Просмотр { @Environment(\.presentationMode) varpresentationMode @State Private var move = false var body: some View { Навигационный стек { ВСтек { Текст («Три вида») } .toolbar { ToolbarItem (размещение: .topBarLeading) { Кнопка (действие: { PresentationMode.wrappedValue.dismiss() }) { Круг() .foregroundColor(Цвет("bgButtonBack")) .frame(ширина: 50, высота: 50) .overlay( Изображение (имя системы: «arrow.left») .foregroundColor(Цвет.основной) ) } } } } .navigationBarBackButtonHidden(истина) } }
"У меня есть три представления: OneView, TwoView и ThreeView.
Я могу перемещаться между ними без каких-либо проблем. Однако когда я нажимаю кнопку закрытия в ThreeView, он возвращается в OneView.
Но если я использую NavigationView, проблем вообще нет." я хочу с ThreeView на TwoView и на OneView
или я ошибаюсь, как использовать NavigationStack?
импортировать SwiftUI структура OneView: Посмотреть { @Environment(\.presentationMode) varpresentationMode @State Private var move = false var body: some View { Навигационный стек { ВСтек { Текст («Один просмотр») Кнопка(действие :{ переместить = правда }) { Текст("Переместить") } .navigationDestination(isPresented: $move) { ДваView() } } .toolbar { ToolbarItem (размещение: .topBarLeading) { Кнопка (действие: { PresentationMode.wrappedValue.dismiss() }) { Круг() .foregroundColor(Цвет("bgButtonBack")) .frame(ширина: 50, высота: 50) .overlay( Изображение (имя системы: «arrow.left») .foregroundColor(Цвет.основной) ) } } } } .navigationBarBackButtonHidden(истина) } } импортировать SwiftUI структура TwoView: Просмотр { @Environment(\.presentationMode) varpresentationMode @State Private var move = false var body: some View { Навигационный стек { ВСтек { Текст("Два представления") Кнопка(действие :{ переместить = правда }) { Текст("Переместить") } .navigationDestination(isPresented: $move) { ТриПросмотр() } } .toolbar { ToolbarItem (размещение: .topBarLeading) { Кнопка (действие: { PresentationMode.wrappedValue.dismiss() }) { Круг() .foregroundColor(Цвет("bgButtonBack")) .frame(ширина: 50, высота: 50) .overlay( Изображение (имя системы: «arrow.left») .foregroundColor(Цвет.основной) ) } } } } } } импортировать SwiftUI структура ThreeView: Просмотр { @Environment(\.presentationMode) varpresentationMode @State Private var move = false var body: some View { Навигационный стек { ВСтек { Текст («Три вида») } .toolbar { ToolbarItem (размещение: .topBarLeading) { Кнопка (действие: { PresentationMode.wrappedValue.dismiss() }) { Круг() .foregroundColor(Цвет("bgButtonBack")) .frame(ширина: 50, высота: 50) .overlay( Изображение (имя системы: «arrow.left») .foregroundColor(Цвет.основной) ) } } } } .navigationBarBackButtonHidden(истина) } }
Мобильная версия