[SwiftUI]iPadOSで画面が真っ白に

# 現象

  • SwiftUI を使ってアプリ制作をしていると iPhone では表示されるのに、iPad では何も表示されなくなった。

# 原因

  • iPadOS では NavigationView はデフォルトで左右(一覧と詳細ページ)の表示になる

# 解決策

  • iPad でも iPhone と同じ表示にするためには.navigationViewStyle(StackNavigationViewStyle())NavigationViewに付与する
  • 注意として、
    • navigationBarTitleのように子 View にではなくNavigationViewそのものに追加してあげる。
    • それぞれのNavigationViewに追加しなければならない
var body: some View {
  NavigationView {
    HogeView()
      .navigationBarTitle(Text("Hoge View"))
      .sheet(isPresented: $isModal) {
        NavigationView {
          FugaView()
            .navigationBarItems(trailing: self.closeButton)
            .navigationBarTitle("settings")
          }
        }
        .navigationViewStyle(StackNavigationViewStyle())
    }
  }
  .navigationViewStyle(StackNavigationViewStyle())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 参考