Pop 和 Push 的导航在 SwiftUI 中不起作用?
Posted
技术标签:
【中文标题】Pop 和 Push 的导航在 SwiftUI 中不起作用?【英文标题】:Navigation of Pop and Push not working in SwiftUI? 【发布时间】:2020-01-26 08:02:50 【问题描述】:我有两个屏幕。第一个屏幕有以下代码
NavigationLink(destination: SecondScreen())
Text("Scan Qr Code")
NavigationLink
导航到按预期工作的第二个屏幕。在第二个屏幕中
struct SecondScreen: View
@Environment(\.presentationMode) var presentation
var body: some View
Button("Done")
self.presentation.wrappedValue.dismiss()
第二个屏幕中的按钮按预期弹出到第一个屏幕,但是当我回到第一个屏幕并单击NavigationLink
时,它不会移动到第二个屏幕。
【问题讨论】:
***.com/questions/58425183/… 的副本?这不是同一个众所周知的错误吗? 【参考方案1】:这里有一个解决方案。使用第一个屏幕上的按钮而不是导航链接,并使用该按钮弹出一个工作表。我对此进行了测试,它对我有用!
struct ContentView: View
@State private var showingAddExpense = false
var body: some View
NavigationView
Button(action:
self.showingAddExpense = true
)
Text("Button")
.sheet(isPresented: $showingAddExpense)
SecondScreen()
struct SecondScreen: View
@Environment(\.presentationMode) var presentation
var body: some View
NavigationView
Button("Done")
self.presentation.wrappedValue.dismiss()
【讨论】:
它将第二个屏幕显示为一个模式,用户可以在我不想要的顶部滑动时将其关闭以上是关于Pop 和 Push 的导航在 SwiftUI 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - 使用 push(), pop() 和路由进行导航
Push、Segue、Summon、导航以编程方式查看 SwiftUI
ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a