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

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

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

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

PHP中文网
PHP中文网

认证高级PHP讲师

Antworte allen(3)
小葫芦

比较好的办法应该是让你所有的 UITableViewController 继承一个公共父类,然后在父类里写这个方法。如果子类里也用到这个方法,先调 super。

另外有一个方法就是看下Method Swizzling 它倒是可以完美解决你的需求,不需要一个个改之前的代码。但是注意这个黑科技一定不要滥用,能不用则不用,因为用多了很混乱。

黄舟

继承一个 UITableViewController, 父类写代理方法

大家讲道理

先建一个父类的UITableView,其他的都继承自这个父类

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!