ある画面でTextViewに入力し、別画面のTableViewに保存したTextを、また別画面のTextViewで表示したいのですが、どうしてもThread 1: signal SIGABRTが表示されてしまいます。
下記の最も下部に表示されます。よろしくお願いします。
Swift
1import UIKit 2 3class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UITextViewDelegate { 4 5 6 7 @IBOutlet var tableView: UITableView! 8 9 10 //ViewController1で入力したTextを保存するための箱 11 var resultArray = [String]() 12 13 14 15 override func viewDidLoad() { 16 super.viewDidLoad() 17 18 tableView.delegate = self 19 tableView.dataSource = self 20 21 } 22 23 24 override func didReceiveMemoryWarning() { 25 super.didReceiveMemoryWarning() 26 // Dispose of any resources that can be recreated. 27 } 28 29 30 //(1) Nothing 31 override func viewWillAppear(_ animated: Bool) { 32 33 super.viewWillAppear(animated) 34 35 if UserDefaults.standard.object(forKey: "input") != nil { 36 37 resultArray = UserDefaults.standard.object(forKey: "input") as! [String] 38 39 } 40 41 tableView.reloadData() 42 43 } 44 45 //(2) 46 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 47 48 return resultArray.count 49 50 } 51 52 53 //(3) Nothing 54 func numberOfSections(in tableView: UITableView) -> Int { 55 56 return 1 57 58 } 59 60 //(4) セルに値を設定 61 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 62 63 let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyTableViewCell 64 65 cell.textLabel?.text = resultArray[indexPath.row] 66 67 68 return cell 69 } 70 71 72 73 74 //(5) 75 func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { 76 77 if editingStyle == .delete{ 78 79 resultArray.remove(at: indexPath.row) 80 81 UserDefaults.standard.set(resultArray, forKey: "input") 82 83 tableView.reloadData() 84 85 } 86 87 } 88 89 90 //セルが選択された時 91 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 92 93 // 次の画面へ移動 94 performSegue(withIdentifier: "next", sender: resultArray[indexPath.row]) 95 } 96 97 98 99 //セル選択時のデリゲートメソッドからperformSegueをコールしています。performSegueは遷移前にprepareを呼び出します。 100 override func prepare(for segue: UIStoryboardSegue,sender: Any!) { 101 102 let nextVC = segue.destination as! ViewController2 103 104 let _ = nextVC.view 105 106 nextVC.label.text = sender as? String 107 108 } 109 110} 111
エラーが出るのは下記の部分です
Swift
1 override func prepare(for segue: UIStoryboardSegue,sender: Any!) { 2 3 let nextVC = segue.destination as! ViewController2 4 5 let _ = nextVC.view 6 7 nextVC.label.text = sender as? String 8 9 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/17 09:22
2019/06/18 08:39