我有多个继承自基本
现在的问题是:从
TableViewController
类的TableViewController
类,就像这样:
class BasicTableViewController: UITableViewController {
}
class SpecificTableViewController: BasicTableViewController {
}
class AnotherSpecificTableViewController: BasicTableViewController {
}
然后我创建了一个非常简单的协议,以添加刷新功能到特定的视图控制器类,像这样:
@objc
protocol Refreshable {
func refresh()
}
我的特定视图控制器类可以按照以下方式实现该协议:
class SpecificTableViewController: BasicTableViewController, Refreshable {
func refresh() {
getSomeDataFromServer()
}
}
现在的问题是:从
BasicTableViewController
中调用refresh方法的正确方式是什么?但BasicTableViewController
本身并不符合Refreshable
协议。现在我正在尝试这样做(但不确定是否正确):class BasicTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let _ = self as? Refreshable {
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(Refreshable.refresh), forControlEvents: .ValueChanged)
self.refreshControl = refreshControl
}
}
}
一开始我没有使用@objc
标记协议,并试图像这样构建选择器:#selector(refresh)
。但是它没有起作用。希望能得到一些解释。
提前致谢!
BasicTableViewController
遵循Refreshable
协议? - ilovecomputerRefreshable
协议时实现refreshcontrol
。如果您有更好的方法来进行检查,欢迎提出。 :) 这就是我所问的... - André Slotta