Вот совершенно другой способ размышления о циклическом перемещении по строкам UITableView ... вот пример изменения текста, который может заполнить ваш UITextView, путем циклического перемещения по вашему массиву, что по существу означает данные вашей ячейки tableView.
Все ячейки заполнены данными из какой-то модели. Очень распространенной моделью было бы использование NSObject и NSMutableArray этих объектов. Если бы вы находились в didSelectRowAtIndexPath, вы бы хотели сделать что-то подобное, чтобы повлиять на строку, которую вы выбираете после изменения вышеуказанного массива:
for(YourObject *cellRow in yourArray)
{
if(![cellRow.someString isEqualToString:@""])
{
cellRow.someString = @"";
}
//...tons of options for conditions related to your data
}
YourObject *obj = [yourArray objectAtIndex:indexPath.row];
obj.someString = @"selected";
[yourArray insertObject:views atIndex:indexPath.row];
[yourArray removeObjectAtIndex:indexPath.row];
[yourTable reloadData];
Этот код удаляет весь текст UITextField в каждой строке, кроме той, которую вы выбрали, оставляя текст «выделенным» в UITextField нажатой ячейки, пока вы используете obj.someString для заполнения текста поля в cellForRowAtIndexPath или willDisplayRowAtIndexPath используя YourObject и yourArray .
Этот тип "зацикливания" не требует условий видимых ячеек по сравнению с невидимыми ячейками. Если у вас есть несколько разделов, заполненных массивом словарей, вы можете использовать ту же логику, используя условие для значения ключа. Может быть, вы хотите переключить ячейку imageView, вы можете изменить строку, представляющую имя изображения. Тонны опций для циклического прохождения данных в вашем tableView без использования каких-либо делегированных свойств UITableView.