两天以来我一直在挠头,但是新的SwiftUI导航部分对我来说很奇怪。
我的问题的简短描述:
我有一个ViewA,它包含3个子视图(Subview1,Subview2,Subview3)。在每个按钮中,我都有2或3个按钮(Subview1ButtonA,Subview1ButtonB,Subview1ButtonC)。
我想根据点击哪个按钮来推不同的视图。
以前,我们需要进入ViewA才能使用回调,通知来推送视图,例如,任何通知ViewA我们要推送ViewB的东西。
在这里,使用SwiftUI,我根本不了解它对我们NavigationLink
的期望。
这是我的示例代码,用于演示我的用例。
// MainView.swift
final class State: ObservableObject {
// Close allow me to close my ViewA, it is a modal and I have a button X integrated
// in Subview1ButtonA
@Published var closePressed: Bool = false
@Published var isView2Presented: Bool = false
}
struct ViewA: View {
@ObservedObject var state = State()
var body: some View {
NavigationView {
VStack(content: {
NavigationLink(destination: View2(isPresented: self.$state.isView2Presented),
isActive: self.$state.isView2Presented) {
ViewB(closePressed: self.$state.closePressed,
view2Pressed: self.$state.isView2Presented)
}
})
}
}
}
如果我在ViewB中有第三个按钮,由于这里只有一个NavigationLink
,它如何工作?
老实说,这真让我感到困惑。
谢谢您的进一步帮助!
编辑:
我有一个MainView,在这个MainView中有几个子视图(让我们说一个视图块被拉在一起形成MainView)。在这个块中,我有几个按钮,每个按钮需要打开一个不同的View。我不确定在这里如何实现我的导航功能。