はじめに
ちょっとした勘違いだけれども、しばらく気が付かなかったため、今後のためにメモメモφ(・・。
課題
var body: some View {
NavigationView {
ScrollView {
いろいろ並べる
}
}
.navigationBarTitle("TopPage",displayMode: .large)
}
NavigationView
に対してnavigationBarTitle
モディファイアを設定した。
でも、表示されるはずのタイトルが表示されない……
解決
var body: some View {
NavigationView {
ScrollView {
いろいろ並べる
}
.navigationBarTitle("TopPage",displayMode: .large)
}
}
表示されました。
ちょっとだけ考察
SwiftUIのNavigationView
はUIKitでのUINavigationViewController
にあたります。UINavigationViewController
は画面遷移や表示されるUIViewController
の管理(スタック)をするものです。
ということは、NavigationView
は内包するView
の管理をするだけのものであり、タイトルを管理するものではないということになります。
要はNavigationView
は箱の役割であり、タイトルとView
はセットでNavigationView
に放り込まれて管理されるということです。navigationBarTitle
は、上記のケースのようにNavigationView
ではなく内包されるView
(ScrollView
)に設定することとなります。
なんとなく納得。ほんとになんとな〜く。
ちなみに、navigationBarItem
も同様です。