📝

SwiftUIのNavigationViewでiPhoneとiPadの動作を合わせる

2021/03/28に公開

SwiftUIでNavigationViewを使うとiPhoneでは

のような動きなのですが、これをiPadで動かすと次のようにiPhoneとは異なる動きになります。

iPhoneと同じ動作にするときはnavigationViewStyleStackNavigationViewStyleを指定します。

確認したコードです。

struct ContentView: View {
    var body: some View {
        NavigationView {
            NavigationLink(
                destination: Text("Destination"),
                label: {
                    Text("Navigate")
                })
            .navigationBarTitle(Text("Top"))
            .navigationBarTitleDisplayMode(.inline)
        }
        .navigationViewStyle(StackNavigationViewStyle())
    }
}

参考

https://developer.apple.com/documentation/swiftui/navigationviewstyle

Discussion