やりたい事
以下のような一つのtableViewでUISegmentedControlを使って、「魚」を押したら"sakana"の配列に入っているデータのみを表示し、「野菜」を押したら"yasai"の配列に入ってるデータを表示し、また全てのデータを見たい時は「全て」を押すと元に戻るような切り替えをしたい。
現況のコード
Swift5
1import UIKit 2 3class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { 4 5 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 6 return alllist.count 7 } 8 9 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 10 ///セルの構築 11 let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) 12 //セルのテキストラベルにindexPath.row番目の配列の要素を入れる 13 cell.textLabel?.text = alllist[indexPath.row] 14 //UITableViewCell型を返す 15 return cell 16 } 17 18 //表示する配列 19 var alllist = [String]() 20 var sakana = ["トビウオ","シャケ","マグロ"] 21 var kudamono = ["リンゴ","バナナ","メロン"] 22 var yasai = ["トマト","キュウリ","ブロッコリー"] 23 24 @IBOutlet weak var table: UITableView! 25 26 override func viewDidLoad() { 27 super.viewDidLoad() 28 // Do any additional setup after loading the view. 29 30 table.delegate = self 31 table.dataSource = self 32 33 alllist = sakana + kudamono + yasai 34 } 35}
わからない事・聞きたいこと
UITableviewの中身をUIButtonやUISegmentedControlで更新(切り替え)する方法が知りたいです。
特にどのようにUITableViewのnumberOfRowsInSection・cellForRowAtのcell.textLabel?.textの部分でデータをセットすれば良いのかが思い付きません。
アドバイスでも良いのでお待ちしてますm(_ _)m
回答1件
あなたの回答
tips
プレビュー