【问题标题】:How to connect ViewController with view by MVC pattern如何通过 MVC 模式将 ViewController 与视图连接起来
【发布时间】:2018-06-13 13:12:38
【问题描述】:

我有两个班级:

BoardViewController: ViewController
BoardView: UIView

BoardViewBoardViewController 的主视图,我这样设置:

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

BoardView 包含UITableViewUIRefreshControl

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

  1. dataSource 设置为tableView

    BoardView 中为控制器创建一个 var 并在此 loadView 中从 BoardViewController 或在控制器中使用 self.view.tableView.dataSource = self 设置它?

  2. 我应该将 UIRefreshContorler 操作的函数存储在 View 还是 ViewController 中?这个函数包含对 tableView 的数据请求

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    在 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
    }
    

    【讨论】:

      猜你喜欢
      • 2011-02-05
      • 1970-01-01
      • 2019-10-17
      • 2020-10-13
      • 1970-01-01
      • 2019-11-27
      • 2020-11-18
      • 2021-12-08
      • 1970-01-01
      相关资源
      最近更新 更多