iOS: Three20: TTTableItem Delegate: Как уникальным образом идентифицировать tableItem? - PullRequest
0 голосов
/ 12 марта 2012

(я разместил вопрос ниже на форуме Three20, но пока нет ответа ! Может быть, вы, ребята, можете помочь.)

Я использую TTTableViewController в своем приложении для iOS и тамэто одна вещь, которую я хочу достичь.

Каждый из классов TTTableItem имеет метод для назначения делегата и селектора при его инициализации.

Например: TTTableTextItem имеет (+ itemWithText: делегат: selector:) Теперь метод селектора будет иметь такую ​​подпись: - (void) selectorMethodForTableItem: (id) sender;Я хотел бы однозначно идентифицировать выбранный tableItem, но в методе селектора у меня есть только объект TTTableTextItem, который имеет только параметр text.(Параметр 'text' является строкой, и он может быть одинаковым для 2 tableItems)

Я легко могу решить эту проблему, если я предоставлю TTUrl для каждого tableItem, но я не хочу переходить на новый экранкогда TableItem нажата.Просто скажите, что я хочу отобразить предупреждение, в зависимости от того, какой элемент таблицы выбирает пользователь.

Как мне решить эту проблему?Нужно ли определять собственный класс TTTableItem?

1 Ответ

2 голосов
/ 13 марта 2012

вы можете установить TTURL для каждого из ваших TTTableTextItem и «поймать» касания в TTTableViewController до того, как TTNavigtor вступит во владение, чтобы ваше приложение не переходило на другую страницу.

в вашем TTTableViewController, добавьте эту функцию:

///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)didSelectObject:(id)object atIndexPath:(NSIndexPath *)indexPath {

  TTTableItem* item = object;
  NSLog(@"%@", item.URL);

  [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}

Обратите внимание, что эта функция не вызывает родительский элемент didSelectObject, то есть не передает объект в TTNavigator.

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