I have added a refresh controller to a table view using an extension:
extension UITableViewController {
func addRefreshController() {
self.refreshControl = UIRefreshControl()
self.refreshControl?.tintColor = UIColor.init(colorFromHexaString: VIOLET_COLOR_HEX_STRING)
self.refreshControl?.attributedTitle = NSAttributedString(string: "Pull to refresh", attributes: [NSAttributedStringKey.foregroundColor : UIColor.init(colorFromHexaString: VIOLET_COLOR_HEX_STRING)])
refreshControl.addTarget(self, action: #selector(self.refresh), for: UIControlEvents.valueChanged)
tableView.addSubview(refreshControl!)
}
}
It's showing this error:
Value of type 'UITableViewController' has no member 'refresh'
But the selector func
is in the TableViewController
.
class TableViewController: UITableViewController {
override func viewDidLoad() {
addRefreshController()
}
@objc func refresh () {
}
}
So, how can I call the selector from an extension?
You should extend your own class, TableViewController
instead of UITableViewController
if you want to access the selectors of TableViewController
.
extension TableViewController { [...] }