SwiftUIのNavigationLinkを使った画面遷移を実装したところ、遷移先の新規登録ビューに謎の空白(ビュー上部)が発生してしまう問題に遭遇した。

気づいてみれば簡単なことだったのだが、この問題の解決法がわかったので紹介する。

問題のコードがこちら。

struct MemberAddView: View {
  var body: some View {
    NavigationView {
      VStack {
        Form {
          // 省略
        }
      }
      .navigationBarTitle("会員新規登録")
    }
  }
}

これは遷移先の新規登録ビューのコードなのだが、遷移先のビューにもNavigationViewの記述が存在すると、今回の問題が起こってしまうようだ。

NavigationViewを削除し、下記のようにすることで空白をなくすことができた。

struct MemberAddView: View {
  var body: some View {
      VStack {
        Form {
          // 省略
        }
      }
      .navigationBarTitle("会員新規登録")
    }
}