UITableViewDataSource Завершена загрузка сигнала в UITableViewDelegate - PullRequest
0 голосов
/ 30 августа 2010

У меня есть отдельные файлы для UITableViewDataSource и UITableViewDelegate

Я реализую функцию «Подтянуть до обновления» в UITableView и хочу отправить сигналот UITableViewDataSource до UITableViewDelegate , чтобы остановить поворот индикатора загрузки.

Мне было интересно, как лучше всего отправить сигнал между UITableViewDataSource и UITableViewDelegate есть, или если есть лучший способ построить это, так как я чувствую, что нарушаю некоторые барьеры абстракции.

То, что у меня есть в источнике данных:

if([tableView.delegate respondsToSelector: @selector(dataSourceDidFinishLoadingNewData)]){
    [tableView.delegate dataSourceDidFinishLoadingNewData];
}

но я получаю 'dataSourceDidFinishLoadingNewData' не найден в предупреждении протокола, так как, я думаю, функция не объявлена ​​как метод UITableViewDelegate

Ответы [ 3 ]

1 голос
/ 30 августа 2010

Возможно, вы в курсе, но существует несколько реализаций pull-to-refresh с открытым исходным кодом.Возможно, вы захотите изучить их, прежде чем делать свои собственные.Вот один (только первый в Google): http://github.com/leah/PullToRefresh

1 голос
/ 31 августа 2010

Просто побочный ответ; При использовании:

if([object respondsToSelector:@selector(someMethod)]){
    [object someMethod];
}

парадигма, вы можете просто использовать это вместо:

if([object respondsToSelector:@selector(someMethod)]){
    [object performSelector:@selector(someMethod)];
}

Может быть немного длиннее, но не будет предупреждений.

0 голосов
/ 30 августа 2010

Вы, вероятно, не можете сделать это, сохраняя вещи полностью абстрактными.Альтернативой вызову делегата через свойство делегата tableViews будет обмен хранящимися ссылками.Но вы могли бы даже избежать необходимости сохранять ссылки друг на друга, используя уведомления для уведомления делегата о завершении загрузки.

Проверьте NSNotificationCenter для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...