前節ではデータとViewを独立させ, 繰り返し処理(Foreach)を使ってデータの数の分だけリストを作ることを行いました。データは 構造体 でわかりやすく整理した上で配列に必要な分だけデータを追加することができるようになりました。今節では前節のデータ構造を用いながら,2-1節で触れた画面遷移を連携させていきます。
SFSwiftUI02-5.swiftpm を開く (サンプルコード)
中身が2-4を終えた段階と同じであることを確認する MyApp.swiftを開き, NavigationStack を追加, ContentViewを包む
コード1 1 2 3 4 5 6 7 8 9 10 11 12 13 import SwiftUI @main struct MyApp: App { var body: some Scene { WindowGroup { NavigationStack { ContentView() .preferredColorScheme( .light ) } } } } 次にContentViewのナビゲーション設定を行います。
ContentView.swiftを開き, Listに .navigationTitle を追加する コード2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 import SwiftUI struct ContentView: View { var photos:[PhotoData] = [ PhotoData( type:"景色", imageName:"CC0_01", title:"景色1", message:"森と山です" ), PhotoData( type:"景色", imageName:"CC0_04", title:"景色2", message:"きれいな湖です" ), PhotoData( type:"景色", imageName:"CC0_06", title:"景色3", message:"フィレンツェです" ), PhotoData( type:"景色", imageName:"CC0_07", title:"景色4", message:"ひまわりです" ), PhotoData( type:"景色", imageName:"CC0_10", title:"景色5", message:"海に日が沈みます" ), PhotoData( type:"食べ物", imageName:"CC0_05", title: "ハンバーガーセット", message: "おいしいです" ), PhotoData( type:"食べ物", imageName:"CC0_08", title: "カフェラテ", message: "おちつきます" ), PhotoData( type:"食べ物", imageName:"CC0_09", title: "ケーキ", message: "あまいです" ), PhotoData( type:"食べ物", imageName:"CC0_12", title: "お酒", message: "酔います" ) ] var body: some View { List { Section( "景色写真" ) { ForEach( photos....