ナビゲーションバータイトル部分の左右にはボタンを配置することができる。
なお、通常はボタンを配置することがほとんどだが、ビューであればどのようなものでも配置することができる。
それでは早速実装例を見ていこう。
ナビゲーションバーの左にボタンを配置する
ナビゲーションバーの左右にボタンを配置する場合はnavigationBarItemsモディファイアを利用する。
struct ContentView: View {
@State var message = "ボタンをタップしてください"
var body: some View {
NavigationView {
Text(message).font(.system(size: 20))
.navigationBarTitle("Welcome")
.padding()
.navigationBarItems(
leading:
Button(action: {
self.message = "Close tapped!"
}) {
Text("Close")
}
)
}
}
}
バーの左に配置する場合はleadingにビューを指定すれば良い。
今回の例ではCloseボタンを配置し、タップされたらナビゲーションビュー内のTextビューの値を変更する処理を実装している。
Closeボタンをタップすると以下のように切り替わる。
ナビゲーションバーの右に二つのボタンを配置する
次はバーの右側にボタンを配置する例を見ていこう。
右に配置する場合はtrailing内にビューを配置し、今回はHStackを利用して二つのボタンを横並びに表示させてみた。
struct ContentView: View {
@State var message = "ボタンをタップしてください"
var body: some View {
NavigationView {
Text(message).font(.system(size: 20))
.navigationBarTitle("Welcome")
.padding()
.navigationBarItems(
leading:
Button(action: {
self.message = "Close tapped!"
}) {
Text("Close")
},
trailing:
HStack {
Button(action: {
self.message = "Help tapped!"
}) {
Text("Help")
}
Button(action: {
self.message = "Info tapped!"
}) {
Image(systemName: "info.circle")
}
}
)
}
}
}
それぞれのボタンには、先ほどと同じようにタップするとナビゲーションビュー内のTextビューの値を変更する処理を入れている。