NavigationView是SwiftUI应用程序最重要的组件之一,它使我们能够轻松推送和弹出屏幕,以清晰,分层的方式向用户展示信息。NavigationView一般用在页面的最外层。可以在其内部添加标题栏,页面内容,以及底部导航栏等等。
我们可以很方便的使用NavigationView来为页面添加标题栏,假设这个页面内容只有一个“Hell World”,那么我们可以这样为页面中添加标题栏
NavigationView {
Text("Hello, World!")
.navigationBarTitle("我是导航栏标题")
}
您可以通过添加displayMode参数来自定义标题的样式,有下面这三种样式:
- large选项显示大标题,这对于导航堆栈中的顶级视图很有用。
- inline选项显示小标题,这对于导航堆栈中的辅助视图,第三视图或后续视图很有用。
- automatic选项是默认选项,它使用以前使用的任何视图。
一般我们常用的是 inline样式:
.navigationBarTitle("Navigation", displayMode: .inline)
如果想在标题栏中添加按钮,可以使用navigationBarItems方法,navigationBarItems方法有两个参数leading和trailing,分别可以在标题栏的左边和右边添加AnyView。
Text("Hello, World!")
.navigationBarTitle("我是导航栏标题")
.navigationBarItems(
leading:
Button("按钮1") {
self.score -= 1
},
trailing:
Text("按钮2")
)
也可以在同一则添加多个不同的View
Text("Hello, World!")
.navigationBarTitle("我是导航栏标题")
.navigationBarItems(
leading:
HStack {
Button("按钮1") {
self.score -= 1
}
Text("按钮2")
}
)