ios - 有什么办法可以让工程中为数众多的UITableViewController共同执行某一个代理方法?
PHP中文网
PHP中文网 2017-04-17 17:29:02
0
3
332

由于需要,现在我希望能让工程中出现的所有TableView都执行某一个代理方法,比如说:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
        [cell setLayoutMargins:UIEdgeInsetsZero];
}

但是由于controller数量巨大,又分散在工程里的很多文件夹中,如果可以的话我不太想一个个找出来单独添加...
请问有什么比较方便快捷的全局添加的方法?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
小葫芦

比較好的方法應該是讓你所有的 UITableViewController 繼承一個公用父類,然後在父類別裡寫這個方法。如果子類別裡也用到這個方法,先調 super。

另外有一個方法就是看下Method Swizzling 它倒是可以完美解決你的需求,不需要一個個改之前的程式碼。但是注意這個黑科技一定不要濫用,能不用則不用,因為用多了很混亂。

黄舟

繼承一個 UITableViewController, 父類別寫代理程式方法

大家讲道理

先建一個父類別的UITableView,其他的都繼承自這個父類別

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板