標籤彙整: swift

在 UITableViewCell 中取得 UITableView 或 UIViewController

在 iOS 7 ~ iOS 10 , UITableViewCell 與 UITableView 中間多了一層 UITableViewWrapperView ,直到 iOS 11 又移除…

將以下兩段複製到繼承 UITableViewCell 的自定義 class 裡


weak var tableView: UITableView? {
// 在 iOS 7 ~ 10 中 ,UITableViewCell 的 superview 為 UITableViewWrapperView 而不是 UITableView
if #available(iOS 11, *) {
return self.superview as? UITableView
}else {
return self.superview?.superview as? UITableView
}
}

weak var viewController: UIViewController? {
return self.tableView?.delegate as? UIViewController
}