実現したいこと
TableViewでButtonを配置してお気に入りをUserDefaultsで保存する機能を実装したいのですが、検索しても実装例がなく、実装する方法を教えていただきたいです。
独学でプログラミングを始めて1ヶ月ほどなのでわかりやすく実装方法を教えてくださると嬉しいです。
発生している問題・エラーメッセージ
なし
該当のソースコード
swift
1 2import UIKit 3 4class functionMenuViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 5 @IBOutlet var tableview: UITableView! 6 @IBOutlet var FavoriteButton: UIButton! 7 8 var function = ["FaceID", 9 "ホームに直接移動する", 10 "コントロールする", 11 "Siriに頼む", 12 "最もスピーディな方法で支払う", 13 "Appを切り替える", 14 "フラッシュライト", 15 "ワイヤレスで充電する", 16 "スクリーンショットを撮る", 17 "メッセージの送信時刻を表示する", 18 "AirDropを使用して共有する", 19 "ポートレート照明", 20 "写真を素早く検索する", 21 "すべての写真をすべてのデバイスで", 22 "家族全員分のストレージ", 23 "睡眠を優先する", 24 "素早く助けを求める", 25 "月経周期を追跡する", 26 "注意して聴く", 27 "サウンドチェック", 28 "ヘルスケアデータを一目で確認する", 29 "ヘルスチェックリストを確認する", 30 "ホーム画面をパーソナライズする", 31 "必要なことを把握しておく", 32 "すべてのAppを整理する", 33 "特定のメッセージに返信する", 34 "翻訳を表示する", 35 "作業しながら視聴する", 36 "キュレーションされたガイドをブラウズする", 37 "正確な図形を描く", 38 "簡単に同じ数字を連続して入力する", 39 "身長を測定する", 40 "写真をフィルタおよび並べ替える", 41 "グループの会話で名前を言及する", 42 "リマインダーを割り当てる", 43 "「カメラ」で音量ボタンを使用する", 44 "「写真」モードでビデオを撮影する", 45 "バーストモードで写真を撮る", 46 "テキストを簡単に編集する", 47 "コピー&ペーストする", 48 "スワープして取り消す", 49 "左右反転したセルフィーを撮影する"] 50 51 52 override func viewDidLoad() { 53 super.viewDidLoad() 54 tableview.dataSource = self 55 tableview.delegate = self 56 57 // Do any additional setup after loading the view. 58 } 59 60 @IBAction func FavoriteButton(_ sender: Any) { 61 //お気に入りボタンのActionボタン 62 } 63 64 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 65 return function.count 66 } 67 68 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 69 ///セルの構築 70 let cell = tableview.dequeueReusableCell(withIdentifier: "functionMenucustomCell", for: indexPath) 71 //セルのテキストラベルにindexPath.row番目の配列の要素を入れる 72 cell.textLabel?.text = function[indexPath.row] 73 //複数行の文章を表示 74 cell.textLabel?.numberOfLines=0 75 //UITableViewCell型を返す 76 return cell 77 } 78 79 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 80 performSegue(withIdentifier: "tofunction", sender: indexPath.row) 81 82 //画面が表示された時にハイライトを消す(ハイライトが徐々に消える) 83 if let indexPathForSelectedRow = tableview.indexPathForSelectedRow { 84 tableview.deselectRow(at: indexPathForSelectedRow, animated: true) 85 } 86 } 87 88 func reloadCell(index: IndexPath) { 89 tableview.reloadRows(at: [index], with: .fade) 90 } 91 92 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 93 if let row = tableview.indexPathForSelectedRow?.row { 94 let vc = segue.destination as! functionViewController 95 vc.functiontext = function[row] 96 } 97 } 98 99 100 /* 101 // MARK: - Navigation 102 103 // In a storyboard-based application, you will often want to do a little preparation before navigation 104 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 105 // Get the new view controller using segue.destination. 106 // Pass the selected object to the new view controller. 107 } 108 */ 109 110} 111
試したこと
検索してみましたがお気に入りボタンを実装する方法が見つからず、現在に至ります。
該当画面
あなたの回答
tips
プレビュー