Closed3

[SwiftUI] NavigationView の中に入れたVStack のy 方向のレイアウトがおかしい

Yusuke AriyoshiYusuke Ariyoshi

NavigationView の中に入れたVStack の上下の方向に謎のレイアウトの乱れが出てしまい、y 方向のレイアウトが上手く行かない。

Yusuke AriyoshiYusuke Ariyoshi

NavigationView が二重に利用されてしまっているのが原因。 (適当に .ignoresSafeArea(.all) を加えたらレイアウトが変わったので分かった)

NavigationLink の遷移元の画面でNavigationView を利用している場合、遷移先の画面でNavigationView を書いてはいけない。
2行削除すればOK。

    var body: some View {
 -       NavigationView {
            VStack(spacing: 0) {
                yourView1
                yourView2
                yourView3
            }
            .frame(maxWidth: .infinity, maxHeight: .infinity)
-        }
        .navigationBarItems(
            leading: navigationBarLeftItems,
            trailing: navigationBarRightItems
        )
        .navigationBarBackButtonHidden(true)
        .navigationBarTitleDisplayMode(.inline)
このスクラップは2021/07/06にクローズされました