実装したいこと
①SettingViewでtaskListという配列を作り、中身を追加、削除できるようにする。
(追加、削除の動作は実装済みです)
②TaskViewで、そのtaskListの配列を受け取ってリスト表示したい。
(ここが分かりません)
調べたところ@Bindingを使うということは何となく分かりましたが、プレビューの部分に渡す値が分からず詰まってしまいました。
SettingView
1struct SettingView: View { 2 3 @State var taskList: [String] = ["task1","task2","task3"] 4 5 var body: some View { 6 //省略 7}
TaskView
1struct TaskView: View { 2 3 @Binding var taskList: [String] 4 5 var body: some View { 6 List(taskList,id: .self){ item in 7 Text(item) 8 } 9 } 10} 11 12struct TaskView_Previews: PreviewProvider { 13 static var previews: some View { 14 TaskView(taskList: //この部分が分かりません ) 15 } 16}
初歩的な質問で申し訳ありませんが、回答よろしくお願いします。
補足
①SettingViewでtaskListという配列の中身を変更できるようにする
②TaskViewに、その配列を渡してリスト表示する
ここまでは出来たのですが、この2つのViewをContentView内にあるタブバーで画面遷移できるようにする場合、TaskView()の中に渡す値はどうなるのでしょうか。
ContentView
1struct ContentView: View { 2 3 var body: some View { 4 TabView { 5 6 TaskView(taskList://ここに入れる値が分かりません) //タスクをリスト表示するためのView 7 .tabItem { 8 Image(systemName: "2.square.fill") 9 Text("入力") 10 } 11 12 SettingView() //タスクを追加、削除するためのView 13 .tabItem { 14 Image(systemName: "3.square.fill") 15 Text("設定") 16 } 17 } 18 .font(.headline) 19 } 20} 21 22struct ContentView_Previews: PreviewProvider { 23 static var previews: some View { 24 ContentView() 25 } 26} 27
そもそもContentViewの方が親Viewになるので@Bindingは使えないのではとも思い、色々試してみましたが分かりませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/04 07:13