SwiftUI 的 NavigationView
或多或少地映射到 UIKit
的 UINavigationController
,因为它可以显示内容,可以处理视图之间的导航,并将导航栏放置在屏幕顶部。
您可以以最简单的形式将文本视图放入导航视图,如下所示:
struct ContentView: View {
var body: some View {
NavigationView {
Text("This is a great app")
}
}
}
但是,这会使顶部的导航栏为空。 因此,您通常会在要嵌入的内容上使用 navigationTitle()
修饰符,因此可以在屏幕顶部添加标题,如下所示:
struct ContentView: View {
var body: some View {
NavigationView {
Text("SwiftUI")
.navigationTitle("Welcome")
}
}
}
还有第二个修饰符 navigationBarTitleDisplayMode()
,它使我们可以控制使用大标题还是较小的内联标题。 例如,默认情况下,视图将从任何显示的视图继承其大标题显示模式,或者如果是初始视图,则将使用大标题。 但是,如果您希望手动启用或禁用大标题,则应使用 .navigationBarTitleDisplayMode()
,如下所示:
struct ContentView: View {
var body: some View {
NavigationView {
#if !os(macOS)
Text("SwiftUI")
.navigationTitle("Welcome")
.navigationBarTitleDisplayMode(.inline)
#else
Text("SwiftUI")
.navigationTitle("Welcome")
#endif
}
}
}
这样可以制作较小的导航标题,但是您也可以使用 .large
强制使用较大的标题。