我找不到任何关于使用 SwiftUI 以编程方式弹出或关闭我呈现的 View 的方法的引用。
在我看来,唯一的方法是对模式使用已经集成的幻灯片操作(以及如果我想禁用此功能怎么办?),以及导航堆栈的后退按钮。
有人知道解决办法吗? 您知道这是错误还是会一直这样?
最佳答案
此示例使用 Beta 5 发行说明中记录的新环境变量,该变量使用值属性。它在后来的测试版中更改为使用 wrappedValue 属性。此示例现在适用于 GM 版本。这个完全相同的概念可以消除使用 .sheet 修饰符呈现的模态视图。
import SwiftUI
struct DetailView: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var body: some View {
Button(
"Here is Detail View. Tap to go back.",
action: { self.presentationMode.wrappedValue.dismiss() }
)
}
}
struct RootView: View {
var body: some View {
VStack {
NavigationLink(destination: DetailView())
{ Text("I am Root. Tap for Detail View.") }
}
}
}
struct ContentView: View {
var body: some View {
NavigationView {
RootView()
}
}
}
关于iOS SwiftUI : pop or dismiss view programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56513568/