2

Objective-cは、2 つがあり、両方が同じデリゲートを実装している場合のように、一度にdelegates1 つずつ楽しませますが、現在提示されている受信コールバックのみを受け取ります。instanceview controllersview controller

uitableviews同じものが2つある場合、view controller両方uitableview's delagates datasourceが次のように設定されます

tb1.datasource = self; 
tb2.datasource = self;

tb1.delegate = self; 
tb2.delegate = self;

同時に定義されたデリゲートで uitableview はどのように機能しますか?

4

2 に答える 2

7

デリゲート/データソース メソッドは、テーブルごとに 1 回ずつ、2 回呼び出され、どのテーブルから呼び出されたかを検出できます。

例えば:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView == tb1)
        return 10;
    else if (tableView == tb2)
        return 8;
}

これが、呼び出し元の tableView がメソッドで変数として渡される理由であり、それがどこから来ているかを検出できます。

于 2013-11-11T10:03:26.357 に答える
2

2 つのUITableViewsin aは、View Controller 内の のUIViewController2 つのインスタンスを意味します。tableViewsしたがって、2 つの tableView インスタンスのdataSourceandを設定している場合は、両方の tableView が同じandメソッドを呼び出すことを意味します。tableView に別の機能が必要な場合は、tableView にタグを設定し、メソッドでそのタグをチェックして、そのタグに応じて特定のタスクを実行できます。delegatedelegatedataSource

于 2013-11-11T10:13:25.973 に答える