【发布时间】:2020-01-02 03:52:01
【问题描述】:
在 SwiftUI 中是否可以返回到特定视图?假设我以这种方式拥有三个视图:
struct View1: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: View2()) {
Text("Navigate to View2")
}
.navigationBarTitle("View1")
}
}
}
}
struct View2: View {
var body: some View {
NavigationLink(destination: View3()) {
Text("Navigate to View3")
}
.navigationBarTitle("View2")
}
}
struct View3: View {
var body: some View {
Text("View3!")
}
}
#if DEBUG
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
View1()
}
}
#endif
导航来回工作:
View1->View2->View3
View3->View2->View1
可以直接从View3回到View1吗?我正在寻找的是类似于UIKit
func popToViewController(_ viewController: UIViewController,
animated: Bool) -> [UIViewController]?
【问题讨论】:
-
是的,也不是。它需要一个
NavigationView和一个Publisher:stackoverflow.com/questions/57334455/… 编辑:我还没有让它工作,但这是我今晚的任务。目前,我使用的是Notification而不是PassthroughSubject。 -
@dfd 感谢您的链接。我会尽快在我的示例中进行尝试。当然,我期待看到您能否为这个(我认为非常重要的)问题找到合适的解决方案。
-
对此也感兴趣!!感觉 SwiftUI 有点缺乏导航