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

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

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

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

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(3)
小葫芦

Cara yang lebih baik ialah dengan membenarkan semua UITableViewControllers anda mewarisi kelas induk yang sama, dan kemudian tulis kaedah ini dalam kelas induk. Jika kaedah ini juga digunakan dalam subkelas, panggil super dahulu.

Cara lain ialah dengan melihat Kaedah Swizzling dengan sempurna boleh menyelesaikan keperluan anda tanpa menukar kod sebelumnya satu demi satu. Tetapi berhati-hati untuk tidak menyalahgunakan teknologi hitam ini, dan jangan gunakannya jika anda boleh, kerana ia akan mengelirukan jika digunakan terlalu banyak.

黄舟

Warisi UITableViewController, dan tulis kaedah proksi dalam kelas induk

大家讲道理

Mula-mula buat UITableView kelas induk dan semua yang lain diwarisi daripada kelas induk ini

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan