tableviewからの画面遷移でSIGABRTが出る
Swift初学者です。tableviewのセルを選択した際にSegueで画面遷移したいのですが、起動する前にSIGABRTエラーが出ます。どこがエラーの原因になっているのでしょうか。
環境:Xcode9.4.1 Swift4.1
該当のソースコード
Swift
1import UIKit 2 3class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 4 @IBOutlet weak var TableView: UITableView! 5 let number = ["1", "2", "3"] 6 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 7 return number.count 8 } 9 10 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {// セルを取得する 11 let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) 12 13 // セルに表示する値を設定する 14 cell.textLabel!.text = number[indexPath.row] 15 16 return cell 17 } 18 19 //セルが選択された時の動作 20 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 21 performSegue(withIdentifier:"toSubViewController", sender: nil) 22 } 23 24 override func viewDidLoad() { 25 super.viewDidLoad() 26 // Do any additional setup after loading the view, typically from a nib. 27 } 28 29 override func didReceiveMemoryWarning() { 30 super.didReceiveMemoryWarning() 31 // Dispose of any resources that can be recreated. 32 } 33 34 35} 36
「起動する前」というのは何を起動する前でしょうか?「アプリを起動して、画面が表示される前」という意味でしょうか?
情報不足ですみません。
エミュレータでアプリが起動する際に落ちたような動作をします。
TableViewのアウトレットは繋がっていますか?
繋がっています。
セルのReuse Identifierは設定されていますか?
セルのIdentifier欄にはCellと入力されています。
Storyboard側にアウトレットのゴミが付いてないでしょうか?ViewControllerを選択後、Connections inspectorで確認して下さい。(警告マークが付いているアウトレットがあったら削除して下さい)
警告マークがついているアウトレットはありませんでした。現時点で確認出来る接続は、dataSource→ View Controller、delegate→View Controller、TableView→View Controller、view→Viewの4つとSegueです。
もう一度 reuse id を確認してみて下さい。Cell の前後にスペースなどが入っているとか、全角文字になっているとか。
もう一度初めから作り直した所、無事に動きました。正直原因は分からず仕舞いですが、、id周りのエラーだったのかもしれません。ありがとうございました。
あなたの回答
tips
プレビュー