前提・実現したいこと
Swiftで作成したリストに設置したボタンをクリックしたら、リストに新規行を追加するコードを書きたいのですが、新規追加というコードが記載できず、困っております。
現在は、ボタンをクリックすると、配列の中身の全てが追加されるという形になってしまっています。
どのような編集でボタンをクリックするごとに新規の行を一行追加するというようにできますでしょうか。
ご教示いただければ幸いです。何卒よろしくお願いします。
該当のソースコード
swift
1import SwiftUI 2 3struct ContentView: View { 4 5 @State var tasks = [String]() 6 7 var body: some View { 8 VStack { 9 NavigationView{ 10 List{ 11 ForEach(0..<tasks.count, id: .self) { task in 12 Text(self.tasks[task])} 13 .onDelete(perform: rowRemove) 14 } 15 .navigationBarTitle("Menu") 16 } 17 HStack { 18 Spacer() 19 Button(action: {self.tasks = createTasks() 20 }) { 21 Image(systemName:"pencil.tip.crop.circle.badge.plus") 22 .resizable() 23 .foregroundColor(/*@START_MENU_TOKEN@*/.black/*@END_MENU_TOKEN@*/) 24 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 25 .scaledToFit() 26 .frame(width: 80, height: 80) 27 } 28 } 29 } 30 } 31 32 func rowRemove(offsets: IndexSet) { 33 tasks.remove(atOffsets: offsets) 34 } 35 func createTasks()->[String] { 36 return ["item1", "item2", "item3", "item4", "item5","item6"] 37 } 38} 39 40struct ContentView_Previews: PreviewProvider { 41 static var previews: some View { 42 ContentView() 43 } 44}
補足情報(FW/ツールのバージョンなど)
xcodeバージョン12を使用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。