SwiftUIのNavigationViewで、NavigationBarが消えなくてハマりましたのでメモ
Sponsor Link
.navigationBarHidden(true)だけではだめ
上記の通り、.navigationBarHidden(true)としても、タイトルバーは表示されてしまいます。
タイトルは表示されてしまう(1)
.navigationBarHidden(true)
.navigationBarTitle(“”)が必要
タイトルの文字列を明示的に””にセットしないといけないみたいです。
タイトル文字列を空文字にセット
.navigationBarTitle("")
.navigationBarTitle(“”) だけでもダメ
ただし、.navigationBarTitle(“”) だけでは、ダメです。
上記の.navigationBarHidden(true) とセットで使う必要があります。
まとめ:NavigationBarを非表示にするコード
以下の2つの設定が必要です。
コード
.navigationBarTitle("")
.navigationBarHidden(true)
なので、例えば、以下のようなコードでタイトルバーのないビューを表示できます。
コード
var body: some View {
NavigationView(){
Text("Hello world")
.navigationBarTitle("")
.navigationBarHidden(true)
}
.navigationViewStyle(StackNavigationViewStyle())
}
なお、上記で表示させると、いったんタイトルバーのありそうな表示を行った後、調整されます。
注意
上記は、XCode11.4での動作ですので、振る舞いに調整が入るかもしれません。
Sponsor Link