Swift
1import UIKit 2 3class secondViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 4 5 // テーブルビュー 6 @IBOutlet var secondTableView: UITableView! 7 8 // ViewControllerから選択されたCell番号を受け取る変数 9 var getCell: Int! 10 11 // セルの要素をあらかじめ決めうち 12 // 果物 13 let fruitArray: [String] = ["リンゴ", "ブドウ", "バナナ", "オレンジ", "レモン", "ピーチ"] 14 // スポーツ 15 let sportArray: [String] = ["サッカー", "野球", "ラグビー", "卓球"] 16 // アニメ 17 let animeArray: [String] = ["ポ", "プ", "テ", "ピ", "ピ", "ッ", "ク"] 18 // 野菜 19 let vegetableArray: [String] = ["スイカ", "トマト", "キャベツ", "キュウリ", "大豆", "レタス", "サニーレタス"] 20 // 映画 21 let movieArray: [String] = ["ハリーポッター", "スターウォーズ", "アイアンマン", "スパイダーマン", "ゴーストバスターズ", "ブラックホークダウン", "タイタニック", "バックトゥーザフューチャー", "ジュラシックパーク"] 22 // 飲み物 23 let drinkArray: [String] = ["コーラ", "烏龍茶"] 24 25 // 選択されたジャンルの配列の長さ変数 26 var arrayLength: Int! 27 28 override func viewDidLoad() { 29 super.viewDidLoad() 30 31 // テーブルビューにTableViewCellを登録 32 secondTableView.register(UINib(nibName: "secondTableViewCell", bundle: nil),forCellReuseIdentifier: "cell_02") 33 34 secondTableView.delegate = self 35 secondTableView.dataSource = self 36 37 // 選択されたジャンルによってセルの数を変える 38 // getCellの中身が・・・ 39 switch getCell { 40 // 0のとき 41 case 0: 42 arrayLength = fruitArray.count 43 // 1のとき 44 case 1: 45 arrayLength = sportArray.count 46 // 2のとき 47 case 2: 48 arrayLength = animeArray.count 49 // 3のとき 50 case 3: 51 arrayLength = vegetableArray.count 52 // 4のとき 53 case 4: 54 arrayLength = movieArray.count 55 // 5のとき 56 case 5: 57 arrayLength = drinkArray.count 58 default: 59 break 60 } 61 62 } 63 64 override func didReceiveMemoryWarning() { 65 super.didReceiveMemoryWarning() 66 // Dispose of any resources that can be recreated. 67 } 68 69 70 // セルの数を指定 71 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 72 // someArrayの中身の数だけセルを表示 73 return arrayLength 74 } 75 76 // 各セルの要素を指定 77 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 78 // UITableViewCellのインスタンスを生成 79 let cell = secondTableView.dequeueReusableCell(withIdentifier: "cell_02", for: indexPath) as! secondTableViewCell 80 81 // 選択されたジャンルによってセルの中身を変える 82 // getCellの中身が・・・ 83 switch getCell { 84 // 0のとき 85 case 0: 86 // セルのUILabelに配列の中身を順に表示 87 cell.secondLabel.text = fruitArray[indexPath.row] 88 // 1のとき 89 case 1: 90 cell.secondLabel.text = sportArray[indexPath.row] 91 // 2のとき 92 case 2: 93 cell.secondLabel.text = animeArray[indexPath.row] 94 // 3のとき 95 case 3: 96 cell.secondLabel.text = vegetableArray[indexPath.row] 97 // 4のとき 98 case 4: 99 cell.secondLabel.text = movieArray[indexPath.row] 100 // 5のとき 101 case 5: 102 cell.secondLabel.text = drinkArray[indexPath.row] 103 default: 104 break 105 } 106 107 return cell 108 } 109 110} 111
Swift
1import UIKit 2 3class secondTableViewCell: UITableViewCell { 4 5 var number = 0 6 7 override func awakeFromNib() { 8 super.awakeFromNib() 9 // Initialization code 10 } 11 12 override func setSelected(_ selected: Bool, animated: Bool) { 13 super.setSelected(selected, animated: animated) 14 15 } 16 17 @IBOutlet var secondLabel: UILabel! 18 19 @IBOutlet weak var zero: UILabel! 20 21 @IBAction func plus(_ sender: Any) { 22 number = number + 1 23 zero.text = String(number) 24 } 25 26 @IBAction func minus(_ sender: Any) { 27 number = number - 1 28 zero.text = String(number) 29 if number < 0 { 30 number = 0 31 zero.text = String(number) 32 } 33 34 } 35 36 @IBOutlet weak var minus: UIButton! 37 38}
tableviewcellに+とーのボタンを配置し、ラベルに個数を表示させるカウントアプリを作成しました。
アプリを一度終了したり遷移元の画面に戻ると、ラベルの数字がリセットされてしまい、開き直すと全項目0になってしまいます。
Userdefaultsを利用すればラベルに表示された個数を保存出来ると知り、色々WEB上で調べたのですが、サンプルアプリやコードを読んでも、近いものがなく、どちらのファイルに何を記載すればよいのかもわかりません。
ご教授いただけないでしょうか。
「UserDefaultsの使い方が分からない」との質問ですが、どのように分からないのでしょう?ご自身で試してみたのですか?であれば、その試したものをご提示ください。
回答1件
あなたの回答
tips
プレビュー