0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【SwiftUI】NavigationStackによるリスト一覧表示

Posted at

まえがき

この記事はSwift独学者による備忘録です。
万が一誤った記載がある場合は、コメントでご指摘いただけると幸いですm(_ _)m

確認環境

XCode Version 15.4
MacOS Sonoma 14.4.1

Swiftでのリスト表示

コーディングの練習中に基本的なリストが作成できたので、備忘録として残します。

Identifiableというプロトコルを用いてリストに一意のID(UUID)を持たせ、Listを表示しています。
destination:でリストを押したときの遷移先Viewを指定しています。

遷移先ViewではVStackを使用して要素を縦並びに表示させています。

コード例

うちの歴代猫ちゃんたちをリストにしてみました。

ファイル名.swift
import SwiftUI

struct Cat: Identifiable {
    var id = UUID()
    var name: String
    var age: Int
    var personality: String
}

struct ContentView: View {
    
    let cats: [Cat] = [
        Cat(name: "たろう", age: 24, personality: "おっとりさん"),
        Cat(name: "こむぎ", age: 13, personality: "かわいいメンヘラ"),
        Cat(name: "ひなり", age: 14, personality: "母性爆発"),
        Cat(name: "ぐり", age: 10, personality: "食いしん坊甘えん坊"),
        Cat(name: "つぶ", age: 13, personality: "健気な美少女"),
        Cat(name: "うに", age: 7, personality: "ツンデレ末っ子")
    ]
    
    var body: some View {
        NavigationStack {
            List(cats) { cat in
                NavigationLink(cat.name, destination: DetailView(cat: cat))
            }
            .navigationTitle("うちの猫たち🐈")
        }
    }
}

struct DetailView: View {
    var cat: Cat

    var body: some View {
        VStack(alignment: .leading) {
            Text("名前: \(cat.name)")
                .font(.title)
                .fontWeight(.bold)
            Text("年齢: \(cat.age)歳")
                .font(.title)
            Text("性格: \(cat.personality)")
                .font(.title)
        }
        .navigationTitle(cat.name)
    }
}
リスト一覧
たろう こむぎ ひなり
ぐり つぶ うに

あとがき

今回はコードの備忘録のみですが、捕捉事項があれば随時更新していきます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?