У меня есть статическая ячейка с 2 секциями. Один раздел имеет 2 строки, а другой - одну строку. Одна из ячеек в первом разделе выполняет операцию, которая может занять до минуты (дешифрование большого количества данных из базы данных, а затем ее снова шифрование).tableview static cell динамический нижний колонтитул
Чтобы сообщить пользователю, что операция продолжается и не застревает, Я пытаюсь сделать следующее: (внизу псевдо моего фактического кода)
Выпуск.
footerString
в doStuff
не показан Однако один в callDoStuff
показан очень хорошо .. Любые идеи, что я делаю неправильно?
- (void) doStuff
{
for (int i=0; i<[resultsArray count]; i++)
{
rec1 = [decrypt record1];
footerString = [@"Preparing item : " stringByAppendingString:rec1];
[self.tableView reload];
rec2 = [decrypt record2];
...
...
...
rec10 = [decrypt record10];
}
}
doStuff
вызывается из другой функции
- (void) callDoStuff
{
[self doStuff];
footerString = @"Done preparing items";
[self.tableView reload];
}
У меня есть следующий в моем tableviewcontroller
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
if (section == 0)
return footerString;
else
return @"";
}
Спасибо. Попробуем сегодня вечером и отметьте ответ, если он сработает! – rkh
Просто обратите внимание, что вам нужно будет добавить еще один обратный вызов в конце вашей большой операции, а затем перезагрузить таблицу. – AncAinu
Ну, это работает, но проблема в том, что выполнение в 'callDoStuff' продолжается, не дожидаясь завершения' doStuff' ... Это проблематично для моей цели ... В любом случае ждать завершения выполнения 'doStuff'? – rkh