我是iOS和SwiftUI的新手-为什么NavigationView甚至存在?每当我们需要链接到某个地方时,为什么不仅仅存在NavigationLinks?

为什么NavigationView必须是顶层视图?从语义上来说,这是没有意义的,因为顶级View应该是VStackZstack

目前:

struct ContentView : View {
    var body: some View {
        NavigationView {
            VStack {
                Text("Hello World")
                NavigationLink(destination: DetailView()) {
                    Text("Do Something")
                }
            }
        }
    }
}

应该:
struct ContentView : View {
    var body: some View {
            VStack {
            Text("Hello World")
            NavigationView {
                NavigationLink(destination: DetailView()) {
                    Text("Do Something")
                }
            }
        }
    }
}

任何的想法?

最佳答案

SwiftUI实际上免费为您提供了很多便利。

其中之一是称为NavigationView的接口构建块。

该界面构建块具有一些便利的功能,例如,为您提供自动导航界面(例如,通过NavigationLink跟随的视图的导航栏中的原始视图的后退按钮等)。

如果不是您的顶级视图,这些便利中的大多数根本就没有意义。

您是否需要较低级别的NavigationView?我无法想象会发生什么,但是我怀疑还有另一个SwiftUI构建块可以实现,它是专门针对上下文而设计的。

关于ios - 为什么NavigationView必须是顶层 View ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61914859/

10-11 19:47