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

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

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

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

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(3)
小葫芦

より良い方法は、すべての UITableViewController に共通の親クラスを継承させて、このメソッドを親クラスに記述することです。このメソッドがサブクラスでも使用される場合は、最初に super を呼び出します。

もう 1 つの方法は、メソッド スウィズリングを検討することです。これは、以前のコードを 1 つずつ変更することなく、ニーズを完全に解決できます。ただし、このブラック テクノロジーを悪用しないように注意し、使いすぎると混乱を招くため、できる限り使用しないでください。

いいねを押す +0
黄舟

UITableViewController を継承し、親クラスにプロキシ メソッドを記述します

いいねを押す +0
大家讲道理

最初に親クラスの UITableView を作成し、他のすべてはこの親クラスから継承します

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート