我有两节课:
BoardViewController: ViewController
BoardView: UIView
BoardView
是BoardViewController
的主视图,我将其设置如下:override func loadView() {
super.loadView()
let view = BoardView(frame: self.view.frame)
self.view = view
}
包含
BoardView
和UITableView
的UIRefreshControl
现在我想知道如何在最佳实践中做到这一点:
将
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/