当我试图将委托加载到UITableView时,我的viewDidLoad方法中获得的EXC_BAD_INSTRUCTION代码为EXC_I386_INVOP,子代码= 0x0。

代码如下:

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

  //MARK: PROPERTIES
  @IBOutlet weak var playerTable: UITableView!

  var players = [playerCell]()

  override func viewDidLoad() {
      super.viewDidLoad()
      playerTable.delegate = self
      playerTable.dataSource = self

      players = [
          playerCell(name: "Kogovsek K.", go: 0),
          playerCell(name: "Novak J.", go: 0),
          playerCell(name: "Doe J.", go: 0),
          playerCell(name: "Unknown P.", go: 0),
      ]
  }

  ...

}


我通过单击其他控制器中的表视图项并在didSelectRowAtIndexPath上查看来启动控制器

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let view = ViewController()
    self.presentViewController(view, animated: true, completion: nil)
}

最佳答案

您正在直接实例化ViewController我应该从情节提要中存档的位置(可能正在触发segue,但是您可以使用标识符实例化)。因此,您的表视图不存在(不是未存档的),因此在尝试使用它时会遇到异常。

10-06 02:33