質問編集履歴

1 内容の変更

watanab_

watanab_ score 37

2018/12/30 23:50  投稿

ボタンを押したときにcountLabel2の値を次の画面のtableviewの保存したいのですが今のままのコードでは保存されません。解説策を教えていただきたいです。
ResultViewControllar.swift
```swift
@IBAction func record(_ sender: Any) {
//配列を取り出す
if (UserDefaults.standard.object(forKey: "save") != nil) {
array = UserDefaults.standard.object(forKey: "save") as! [String]
}
array.append(countLabel2.text!)
UserDefaults.standard.set(array, forKey: "save")
}
```
SaveviewController
```Swift
import UIKit
class SaveViewController: UIViewController,UITableViewDelegate,
UITableViewDataSource {
@IBOutlet var tableView: UITableView!
var resultArray = [String]()
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
if UserDefaults.standard.object(forKey: "save") != nil {
resultArray = UserDefaults.standard.object(forKey: "save") as! [String]
}
tableView.reloadData()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return resultArray.count
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel?.text = resultArray[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 60
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
resultArray.remove(at: indexPath.row)
UserDefaults.standard.set(resultArray, forKey: "todo")
tableView.reloadData()
}
}
```
  • Xcode

    8535 questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Swift

    14727 questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る