現在メモアプリのようなものを作成しているのですが、textviewに記述したものを保存し、次にセルをタップしてもその内容が保存されているようにしたいのですがそのコードの書き方がわかりません。現在は
lang
1import UIKit 2 3class ViewController: SecondViewController1, UITableViewDelegate, UITableViewDataSource { 4 5 @IBOutlet weak var myTableView: UITableView! 6 7 let myItems: NSMutableArray = ["TEST1", "TEST2", "TEST3"] 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 // Do any additional setup after loading the view, typically from a nib. 12 13 self.navigationItem.rightBarButtonItem = self.editButtonItem() 14 myTableView.allowsSelectionDuringEditing = true 15 16 } 17 18 override func didReceiveMemoryWarning() { 19 super.didReceiveMemoryWarning() 20 // Dispose of any resources that can be recreated. 21 } 22 23 /* 24 Cellの総数を返す 25 (実装必須) 26 */ 27 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 28 return myItems.count 29 } 30 31 /* 32 Cellに値を設定する 33 (実装必須) 34 */ 35 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 36 37 let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell 38 39 // Cellに値を設定. 40 cell.textLabel?.text = "\(myItems[indexPath.row])" 41 42 return cell 43 } 44 45 /* 46 編集ボタンが押された際に呼び出される 47 */ 48 override func setEditing(editing: Bool, animated: Bool) { 49 super.setEditing(editing, animated: animated) 50 51 // TableViewを編集可能にする 52 myTableView.setEditing(editing, animated: true) 53 54 // 編集中のときのみaddButtonをナビゲーションバーの左に表示する 55 if editing { 56 println("編集中") 57 let addButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Add, target: self, action: "addCell:") 58 self.navigationItem.setLeftBarButtonItem(addButton, animated: true) 59 } else { 60 println("通常モード") 61 self.navigationItem.setLeftBarButtonItem(nil, animated: true) 62 } 63 } 64 65 /* 66 addButtonが押された際呼び出される 67 */ 68 func addCell(sender: AnyObject) { 69 println("追加") 70 71 // myItemsに追加. 72 myItems.addObject("add Cell") 73 74 // TableViewを再読み込み. 75 myTableView.reloadData() 76 } 77 78 /* 79 Cellを挿入または削除しようとした際に呼び出される 80 */ 81 func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 82 83 // 削除のとき. 84 if editingStyle == UITableViewCellEditingStyle.Delete { 85 println("削除") 86 87 // 指定されたセルのオブジェクトをmyItemsから削除する. 88 myItems.removeObjectAtIndex(indexPath.row) 89 90 // TableViewを再読み込み. 91 myTableView.reloadData() 92 } 93 } 94 95 /* 96 Cellが選択された際に呼び出される. 97 */ 98 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 99 100 // 選択中のセルが何番目か. 101 println("Num: \(indexPath.row)") 102 103 // 選択中のセルのvalue. 104 println("Value: \(myItems[indexPath.row])") 105 106 // 選択中のセルを編集できるか. 107 println("Edeintg: \(tableView.editing)") 108 109 //SecondViewController1のインスタンスを作成する. 110 let vc: SecondViewController1 = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("second") as! SecondViewController1 111 112 vc.memo = "\(myItems[indexPath.row])" 113 114 // Viewの移動する. 115 self.navigationController?.pushViewController(vc, animated: true) 116 117 } 118 119 120 121}
lang
1import Foundation 2 3import UIKit 4 5class SecondViewController1: UIViewController,UITextViewDelegate{ 6 7 @IBOutlet weak var detailDescriptionLabel: UILabel! 8 9 @IBOutlet weak var myTextView: UITextView! 10 11 var loadText : String! 12 13 var memo: AnyObject? { 14 didSet { 15 // Update the view. 16 self.configureView() 17 18 } 19 } 20 21 func configureView() { 22 // Update the user interface for the detail item. 23 if let detail: AnyObject = self.memo { 24 if let label = self.detailDescriptionLabel { 25 label.text = detail.description 26 } 27 } 28 } 29 30 31 override func viewDidLoad() { 32 super.viewDidLoad() 33 34 self.configureView() 35 36 let userDefaults = NSUserDefaults.standardUserDefaults() 37 38 if loadText != nil { 39 // キーが"saveText"のStringをとります。 40 loadText = userDefaults.stringForKey("saveText") 41 42 // labelに表示 43 myTextView.text = loadText 44 } 45 46 } 47 48 override func didReceiveMemoryWarning() { 49 super.didReceiveMemoryWarning() 50 } 51 52 @IBAction func tapScreen(sender: AnyObject) { 53 54 self.view.endEditing(true) 55 56 } 57 58 func textViewDidChange(textView: UITextView){ 59 // NSUserDefaultsインスタンスの生成 60 let userDefaults = NSUserDefaults.standardUserDefaults() 61 62 // キー: "saveText" , 値: "<textFieldの入力値>" を格納。(idは任意) 63 userDefaults.setObject(textView.text, forKey: "saveText") 64 65 } 66 67}
このような感じで記述しています。まだ開発初めて間もないためネットにあるデータ保存に関するコードをとりあえず書いてるだけのような感じなので当然機能してくれません。自分でも調べながら勉強中ですが皆様のお力もお借りできたらと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/26 10:18
2015/05/26 10:41
2015/05/30 12:24
2015/05/30 12:25