如何解决我的TableView数据源函数没有被调用,我也不知道为什么
所以我有一个UITableView,它是您拖动到视图控制器中的那种,而不是tableviewController。我在viewDidLoad中将委托属性设置为self:
searchTableView.delegate = self
searchTableView.isHidden = true
searchTableView.isUserInteractionEnabled = false
我在情节提要中向其添加了一个原型单元格,其标识符为“ SearchResultCell”。这是我的tableview数据源函数:
extension MapViewController: UITableViewDelegate,UITableViewDataSource {
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
searchCompleter.queryFragment = searchBar.searchTextField.text!
let completionResults = searchCompleter.results
return completionResults.count
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
searchCompleter.queryFragment = searchBar.searchTextField.text!
let completionResults = searchCompleter.results
print(completionResults)
let cell = tableView.dequeueReusableCell(withIdentifier: "SearchResultCell",for: indexPath)
cell.textLabel?.text = completionResults[indexPath.row].subtitle
return cell
}
}
从字面上看,这些函数中的任何代码都没有被调用。 (不用担心,在调用表格视图函数之前,isHidden和isUserInteractionEnabled函数会被切换,所以这不是问题)我认为我不知道如何将这些函数连接到我的特定UITableView上,但是我不知道还有什么除了将委托设置为我已经完成的自我之外,还可以做其他事情。关于如何使它们被调用的任何建议都将受到赞赏!
这是我的视图控制器的图片,因此您可以查看是否缺少约束或位置是否成问题:
解决方法
还需要添加
searchTableView.dataSource = self
,
您还可以在情节提要中设置两个连接
但是,我认为您还有另一个问题-也就是说,我认为您不能在MapViewController中嵌入UITableView-这是关于其他人的讨论,该问题同样Implementing UITable in MapView
我认为您的解决方案将是使用同时包含Map和Table的UIViewController-您可以使它看起来与已有的相同。
,确保completionResults.count
不等于0。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。