为了卸载我的视图控制器,我决定将TableViewDataSource和TableViewDelegate从我的视图控制器分离到它们自己的类中。我对如何解决以下问题感到困惑:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
hideNavbar = true
let vc = TopicSelectionViewController()
self.navigationController?.present(vc, animated: true, completion: {
self.hideNavbar = false
})
}
如果是这样,如何通知显示表视图的视图控制器在从服务器检索数据后更新它的视图?
答案 0 :(得分:0)
引用navigationController?您不需要引用navigationController。任何视图控制器都会获得它的默认navigationController。
没有正确的方法来引用tableView。您可以使用任何适合您需要的,因为所有这些都来自 Apple 。您可以通过代码或 连接检查器 设置它的dataSource / delegate(或者,您可以使用控制点击+拖动机制)。
UITableViewDataSource
旨在处理表格视图的外观。 (有关详情,请参阅此处:UITableViewDataSource和UITableVIewDelegate)。那就是你配置表视图的样子。它与您的实际数据无关。但是,您可以配置网络层,以便在从服务器检索数据时更新TableView
。当您准备好显示更新的数据时,您只需重新加载表格视图。