質問: userDefaults.objectForKey("ReciveSave") as? String ReciveData.append(result!) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } } ここまで、なんとかコーディングしてみたのですが どうしても、遷移元で保存ボタンを押して 遷移してCellを表示そしてまた遷移元に戻り 新しい、値を保存して遷移して新しいCellを追加といったことができません。 これらの処理を実現できるよう どなたか、アドバイスを頂けたらと思います。 宜しくお願い致します。
回答: 表示するものは配列で保持しなと複数表示できないので`Array`の型で`NSUserDefaults`保存してください。 ``` import Foundation import UIKit class FirstViewController: UIViewController{ let userDefaults = NSUserDefaults.standardUserDefaults() var Savehozon: String? @IBOutlet weak var MyText: UITextField! //こちらが保存ボタンです。 @IBAction func AddAction(sender: AnyObject) { //テキストフィールドに入力したあたいをこの保存ボタンで保存してSavehozonに代入しています。 Savehozon = MyText.text! if var result = userDefaults.objectForKey("ReciveSave") as? Array { result.append(Savehozon!) //それをReciveSaveでキーを取得して保存しています。 userDefaults.setObject(result, forKey:"ReciveSave") } else { userDefaults.setObject([Savehozon!], forKey:"ReciveSave") } userDefaults.synchronize() } override func viewDidLoad() { super.viewDidLoad() } override func touchesBegan(touches: Set, withEvent event: UIEvent?) { view.endEditing(true) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } } // ------------------------------------------------- import Foundation import UIKit class SaitouViewController: UITableViewController { var ReciveData: [String] = [] let userDefaults = NSUserDefaults.standardUserDefaults() override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { //対象のCellを取得しています。 let cell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath:indexPath) //Cellに配置してあるラベルをタグIDから取得しました。 let label = cell.contentView.viewWithTag(1) as! UILabel //それをReciveData[indexPath.row]で取り出してラベルを書き換えています。 label.text = ReciveData[indexPath.row] return cell } override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return ReciveData.count } override func viewDidLoad() { super.viewDidLoad() //二枚目に遷移してきたらReciveSaveを読み込んで配列ReciveDataにappendしました。 if let result = userDefaults.objectForKey("ReciveSave") as? Array { ReciveData = result } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } } ```