実現したいこと
- チャンピオン一覧のリストがある
- チャンピオンをタップすると、そのチャンピオンの詳細ページへ飛ぶ
このようなコードを目指して書いています。
以下にコードを載せますが、見やすくするために今回の問題と関係ない部分は省いたり消したりしてます。逆に見づらくなってたら申し訳ありません。
[環境] Swift5 SwiftUI
手順
①ID、名前、画像の定数を持つモデルを作る。(ChampionModel)
②そのモデルと配列を使って、Championのデータを複数作る。(champions)
ChampionData
1//ID、名前、画像の定数を持つモデルを作成 2import SwiftUI 3 4struct ChampionModel:Identifiable { 5 let id = UUID() 6 let name: String 7 let image: Image 8} 9 10//モデルと配列を使って複数のChampionのデータを作る 11let champions:[ChampionModel] = [ 12 ChampionModel(name: "urgot", image: Image("urgot_image")), 13 ChampionModel(name: "ahri", image: Image("ahri_image")), 14 ChampionModel(name: "ivern", image: Image("ivern_image")) 15]
③ForEachを使ってリスト表示させ、ChampionDetailへリンクさせる
ChampionList
1struct ChampionList: View { 2 3 var body: some View { 4 NavigationView{ 5 List{ 6 ForEach(champions) { champ in 7 HStack { 8 NavigationLink(destination: ChampionDetail()){ 9 //ここに渡す引数がわかりません 10 11 champ.image 12 13 Text(champ.name) 14 15 } 16 } 17 } 18 }.navigationBarTitle(Text("Champion List")) 19 } 20 } 21}
リンク先になる詳細ページ
ChampionDetail
1import SwiftUI 2 3struct ChampionDetail: View { 4 5 var body: some View { 6 VStack{ 7 8 Text(champ.name) //ここで選択されたChampionの名前と画像を表示させたい 9 champ.image 10 11 } 12 } 13} 14 15struct ChampionDetail_Previews: PreviewProvider { 16 static var previews: some View { 17 BackImage() 18 } 19}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/01 11:07
2020/09/01 11:36