swift 一个控制器实现多个delegate,如何设置指定的delegate

swift 一个控制器实现多个delegate(UItableviewdelegate,UIScrollViewDelegate),那么tableview.delegate设置指定delegate怎么搞?

阅读 4.7k
2 个回答

delegate都是固定的,里面有对应的协议才能设置代理,不存在tableview调用了ScrollView的协议,所以可以放心使用。
如果是你自己设置的协议代理,同一个类里面要有多个delegate,你完全可以随意给他命名,比如UITableView里面就有两个协议,一个是用来处理UI的,叫delegate,一个用来处理数据的,叫datasource。调用的时候直接就是:

tableview.delegate = self
tableview.dataSource = self

然后再调用他们各自的方法。

不是很懂你的问题,不过controller是可以实现多个delegate,并只需要把tableview.delegate = self.
不知道这个答案是不是你想要的。

class CustomViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let tableView = UITableView()
        tableView.delegate = self
    }
}

extension CustomViewController: UITableViewDelegate {
}

extension CustomViewController: UIScrollViewDelegate {
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题