[SwiftUI] SwiftUIのNavigationViewでNavigationBarが消えない問題

SwiftUI

     
⌛️ < 1 min.
SwiftUIのNavigationViewで、NavigationBarが消えなくてハマりましたのでメモ

.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での動作ですので、振る舞いに調整が入るかもしれません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です