使用带委托协议的TableView从视图控制器B传递数据到视图控制器A的步骤如下:
protocol TableViewDelegate: class {
func didSelectItem(item: String)
}
class ViewControllerB: UIViewController, UITableViewDelegate {
weak var delegate: TableViewDelegate?
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedItem = data[indexPath.row]
delegate?.didSelectItem(item: selectedItem)
}
}
class ViewControllerA: UIViewController, TableViewDelegate {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let viewControllerB = segue.destination as? ViewControllerB {
viewControllerB.delegate = self
}
}
func didSelectItem(item: String) {
// 在这里处理从视图控制器B传递过来的数据
}
}
通过以上步骤,视图控制器A就可以通过委托协议从视图控制器B接收到选中的数据。这种方式适用于需要在不同的视图控制器之间传递数据的场景,例如Master-Detail模式、多层级导航等。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云