cari

Rumah  >  Soal Jawab  >  teks badan

ios - 有什么办法可以让工程中为数众多的UITableViewController共同执行某一个代理方法?

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

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

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

PHP中文网PHP中文网2826 hari yang lalu306

membalas semua(3)saya akan balas

  • 高洛峰

    高洛峰2017-04-17 17:31:02

    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.

    balas
    0
  • 黄舟

    黄舟2017-04-17 17:31:02

    Warisi UITableViewController, dan tulis kaedah proksi dalam kelas induk

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:31:02

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

    balas
    0
  • Batalbalas