はじめに
ちょっとした勘違いだけれども、しばらく気が付かなかったため、今後のためにメモメモφ(・・。
課題
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も同様です。