🪶

SwiftUI List 画面遷移とタイトルの配置

2024/07/29に公開

個々のページをリストに表示

SwiftUIで、配列の値をリストに表示して、詳細ページに渡す例はよく見かけますが、1個、1個、ページを作る例は中々見かけません。

今回は、その機能を使いたかったのでデモアプリを作ってみました。NavigationStackの中に、Listを作成して、NavigationLinkを作成すると、指定したページへ画面遷移するListを作成することができました。

navigationTitleが、左によってしまっているので、中央に寄せて見栄えを良くしたい。navigationBarTitleDisplayMode(.inline)を使うと解決できた。

import SwiftUI

struct SettingView: View {
    var body: some View {
        NavigationStack {
            List {
                NavigationLink(destination: TermsOfServiceView()) {
                    Text("利用規約")
                }
                NavigationLink(destination: PrivacyPolicyView()) {
                    Text("プライバシーポリシー")
                }
                NavigationLink(destination: ContactView()) {
                    Text("お問い合わせ")
                }
            }
            .navigationTitle("設定")
            .navigationBarTitleDisplayMode(.inline)
        }
    }
}

struct TermsOfServiceView: View {
    var body: some View {
        Text("利用規約の内容")
    }
}

struct PrivacyPolicyView: View {
    var body: some View {
        Text("プライバシーポリシーの内容")
    }
}

struct ContactView: View {
    var body: some View {
        Text("お問い合わせフォーム")
    }
}

#Preview {
    SettingView()
}


まとめ

Listに指定したページへ画面遷移する方法を今回はご紹介いたしました。よくある設定画面の作成に活かしてみてください。

Discussion