【问题标题】:How is UIViewController automatically conforming to TableView protocols?UIViewController 是如何自动符合 TableView 协议的?
【发布时间】:2017-02-01 20:03:59
【问题描述】:

我的项目包含几个管理表的视图控制器。这些控制器没有明确地符合 UITableViewDelegate 或 UITableViewDataSource,并且是 UIViewController 的子类而不是 UITableViewController,但是设法公开了我从这些协议中实现的表视图方法,例如 tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat。这些视图控制器来自故事板,它可能正在做一些我不知道的幕后工作。这个魔法是怎么发生的?这些协议的隐含一致性从何而来?

【问题讨论】:

    标签: ios swift uitableview uiviewcontroller


    【解决方案1】:

    您可以在 Storyboard 中选择任何类作为 UITableView 委托。故事板不检查类是否真的确认了某些协议。所以你不会收到编译时错误。在运行时 UITableView 也不会检查它的委托是否实现了protocol。取而代之的是 UITableView 使用respondsToSelector 来检查它的委托是否需要方法。由于您的视图控制器具有 - 一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多