为了卸载视图控制器,我决定将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
    })

}

如果我把这个放到TableViewDelegate自己的类中,什么是最好的
参考导航控制器的实践?
引用正在使用的tableView的正确方式是什么
这个数据源/委托?
我可以在数据源中有网络层吗?
如果是,如何在从服务器检索数据后通知显示表视图的视图控制器更新其视图?

最佳答案

引用导航控制器?不需要引用导航控制器。任何视图控制器都会获取它的默认导航控制器。
没有正确的方法引用tableView。你可以使用任何一个适合你的需要,因为它们都是由苹果公司指导的。您可以通过代码或从连接检查器(或者,您可以使用控制单击+拖动机制)设置它的数据源/委托。
UITableViewDataSource用于处理表视图的外观。(更多信息请参见:UITableViewDataSourceUITableVIewDelegate)。这就是配置表视图的外观。这与你的实际数据无关。但是,您可以配置网络层,以便在从服务器检索数据时更新TableView。当准备好显示更新的数据时,只需重新加载表视图。

10-08 06:25