Лично я стараюсь избегать использования тегов, так как обычно злоупотребляю ими до полного замешательства и начинаю находить более изящные способы обойти это.Например, в вашей ситуации я бы создал IBOutlet
s для пользовательских объектов UITableViewCell
, делая их более семантически релевантными.Тем не менее, ваша ситуация может быть другой - мне недостаточно в вопросе, чтобы сказать, что это определенно сработает для вас.
При этом кажется, что вы можете выполнить то, что пытаетесь сделать, с помощью:
- Присваивание каждой ячейке, возвращенной методом
cellForRowAtIndexPath
, тега (перед его возвратом) - Присвоение каждому объекту в ячейке тега, как вы, кажется, уже сделали
Таким образом, вы можете получить доступ к объектам ячейки (предположительно UIView
s) из (где угодно) вашего UITableViewController
с помощью:
UITableViewCell *cell = (UITableViewCell *)[self.tableview viewWithTag:CELL_TAG];
UIView *objectInCell = [cell viewWithTag:OBJECT_TAG];
Имейте в виду, что этопозволяют получить доступ к объекту в определенной ячейке.Если вы пытаетесь получить доступ к объектам всех ваших ячеек, вы можете просто перебрать все из них.Тем не менее, я чувствую, что в этот момент это станет неоправданно сложным.Было бы полезно, если бы вы опубликовали немного больше информации о том, чего именно вы пытаетесь достичь, используя тегирование таким образом.Надеюсь, что это поможет в то же время.