将委托加载到UITableView

时间:2015-08-01 09:22:17

标签: ios swift uikit

我在我的viewDidLoad方法中使用代码EXC_I386_INVOP,子代码= 0x0获取EXC_BAD_INSTRUCTION,当我想要将委托加载到UITableView时。

代码如下:

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)
}

1 个答案:

答案 0 :(得分:0)

您正在直接实例化ViewController您应该在我的故事板中存档(可能是触发了一个segue,但您可以使用标识符进行实例化)。因此,您的表视图不存在(它未被取消存档),因此在尝试使用它时会出现异常。