当我试图将委托加载到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,但是您可以使用标识符实例化)。因此,您的表视图不存在(不是未存档的),因此在尝试使用它时会遇到异常。