前提・実現したいこと
tableViewを使った入力フォームを作っています。
入力フォームを追加するためのボタンが入ったカスタムセルが常に一番下にあります。
その一番下にあるボタンを押した時にMain内のtableViewを更新したいのですが以下のようなエラーが出てうまくいきません。
発生している問題・エラーメッセージ
Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
該当のソースコード
Swift
1class Main:UIViewController, UITableViewDelegate, UITableViewDataSource { 2 @IBOutlet weak var tableView: UITableView! 3: 4: 5 //セル追加時の処理 6 func tableReLoad() { 7 tableView.beginUpdates() 8 tableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: .automatic) 9 tableView.endUpdates() 10 } 11}
Swift
1//カスタムセル 2class Custom: UITableViewCell{ 3 @IBOutlet weak var button: UIButton! 4 let Ins = Main() 5 6 //ここでボタンが押された時にMainのtableViewのcell追加の処理をしたい 7 @IBAction func button(_ sender: Any) { 8 Ins.tableReLoad() 9 } 10}
試したこと
Main内にボタンを作り下記のように試したところカスタムセルのボタンの方はやはりエラーが出るのですが、Main内のボタンの方はエラーなく入力フォームが追加されました。
しかし、セル内に追加ボタンをどうしても表示したいので上記の方法でエラーが出ない方法が知りたいです。
Swift
1class Main:UIViewController, UITableViewDelegate, UITableViewDataSource { 2 @IBOutlet weak var tableView: UITableView! 3 @IBOutlet weak var newButton: UIButton! 4: 5: 6 //エラーが出る 7 func tableReLoad() { 8 tableView.beginUpdates() 9 tableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: .automatic) 10 tableView.endUpdates() 11 } 12 13 //エラーが出ない 14 @IBAction func newButton(_ sender: Any) { 15 tableView.beginUpdates() 16 tableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: .automatic) 17 tableView.endUpdates() 18 } 19}
Swift初心者でわからないことも多く説明不足な点もあるかもしれませんが、ご教示いただけると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/01 02:40