我知道这是一个重复的问题(非常抱歉),但是到目前为止,我已经尝试了所有我发现的问题,但是仍然收到此错误的错误消息:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x7fc4a9705960'
让我用图像清楚地阐明各部分,以便为解决相关问题提供一个很好的答案。
这是文件夹视图(ViewController
-主视图,TableView1
是子视图):
我的TableView1.xib
文件具有:
。
我还编辑了TableView1.swift
:
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
在我的
Main.Storyboard
中:当我选择
View Controller
()时,它看起来像这样:但是,当我单击
View
()时:我在路上做错了什么或想念什么?
更多信息:
最佳答案
-[UIViewController tableView:numberOfRowsInSection:]:
因此,根据错误日志,在设置deletegate和datasource时,某处的类型会不匹配,这是因为在xib上您说tableview1.xib应该实现数据源和委托。但是在ViewController1.swift中,您错误地引用了UIViewController。
现在您看到UIViewController对于实现委托和数据源只是个未知数,因为它没有(显然)崩溃。
所以:
let controller : UIViewController = UIViewController(nibName: "TableView1", bundle: nil)
变成:
let controller : UITableViewController = UITableViewController(nibName: "TableView1", bundle: nil)
应该管用。