我有两节课:

BoardViewController: ViewController
BoardView: UIView


BoardViewBoardViewController的主视图,我将其设置如下:

override func loadView() {
    super.loadView()
    let view = BoardView(frame: self.view.frame)
    self.view = view
}


包含BoardViewUITableViewUIRefreshControl

现在我想知道如何在最佳实践中做到这一点:


dataSource设置为tableView

BoardView中为控制器创建一个变量,并在此loadView中从BoardViewController进行设置,或在控制器中使用self.view.tableView.dataSource = self
我应该在哪里在View或ViewController中为UIRefreshContorler操作存储func?该func包含对tableView的数据请求

最佳答案

在BoardViewController内部创建Board View的实例

private let boardView = BoardView()


并将其设置为loadView()中的当前视图:

view = searchView


将init()函数添加到BoardView

init() {
    super.init(frame: .zero)
    // some function to create tableView, set constraints etc.
}


然后在BoardViewController内部点击其属性,例如:

boardView.tableView.delegate = self


在BoardViewController内部执行以下操作:

extension BoardViewController: UITableViewDelegate {
 // declare all the functions
}

关于ios - 如何通过MVC模式将ViewController与 View 连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50838185/

10-11 17:09