SwiftUI:导航到视图层次结构中的视图



到目前为止我所拥有的:

我有两个视图,第一个视图是我的ContentView将在SceneDelegate(这是标准的(中加载到scene(_:willConnectTo:options:)方法中。我已经嵌入了NavigationView到我的ContentView的身体属性。第二个视图DetailView可以通过NavigationLink导航到,要向后导航,您可以使用NavigationView创建的后退按钮。

struct ContentView: View {
var body: some View {
NavigationView {
Form {
NavigationLink(destination: DetailView()) {
Text("Navigate")
}
}
.navigationBarTitle("Some Title")
}
}
}
struct DetailView: View {
var body: some View {
Text("Detail")
.navigationBarTitle("Another Title")
}
}

SceneDelegatescene(_:willConnectTo:options:)方法的内部:

let contentView = ContentView()
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: contentView)
self.window = window
window.makeKeyAndVisible()
}

我想做什么:

现在我想根据SceneDelegatescene(_:willConnectTo:options:)方法内部的connectionOptions立即导航到DetailView

我的问题:

当我根据connectionOptionslet contentView = ContentView()替换为let contentView = DetailView时,我的ContentView不再在我的视图层次结构中,因此我没有NavigationView布局。

问题:

如何在不丢失由另一个视图中的NavigationView创建的任何导航功能(包括导航栏、后退按钮和能够更深入地导航(的情况下导航到视图层次结构中的某个视图?

使用NavigationLink(_,destination:,tag:,selection:)并将selection绑定到来自connectionOptions的相关数据。

有关详细说明和示例代码,请参阅 https://nalexn.github.io/swiftui-deep-linking/。

最新更新