UITableViewCell дополнительная информация - PullRequest
2 голосов
/ 19 марта 2012

Мне предстоит тяжелая работа. Я пытаюсь прикрепить дополнительную информацию к UITableViewCell. В tableViewCells есть кнопки, которые я вложил в подкласс для этого (я передаю строку NSString).

Теперь, когда пользователь нажимает на tableRow, я хочу запустить другой метод и хочу передать ту же строку. Я создал подкласс UITableViewCell и добавил в него строку.

Но Я не могу получить значение строки в tableView:didSelectRowAtIndexPath:. Это потому, что UITableView возвращает UITableViewCell, а не мой пользовательский подкласс:

[tableView cellForRowAtIndexPath:indexPath].passString
    → /* Property 'passString not found on object of type UITableViewCell */

Когда я делаю NSLog(@"%@", [tableView cellForRowAtIndexPath:indexPath]);, я вижу свойство в журнале.

Теперь мой вопрос: Как я могу получить это свойство подкласса другими методами?!

Я не хочу также создавать подкласс UITableView. В итоге я бы выделил подклассы как каждый UIElement, который я использую: '(

Спасибо за помощь, привет Julian

Ответы [ 2 ]

3 голосов
/ 19 марта 2012

Джулиан, просто наберите UITableViewCell в свой класс, например

CustomCell *cell = (CustomCell*)[tableView cellForRowAtIndexPath:indexPath];
cell. passString; //it will work

или вы можете передать сообщение вместо оператора точки
[[tableView cellForRowAtIndexPath:indexPath] passString];
он выдаст вам предупреждение, но сработает, если он является объектом вашего CustomCell. Предпочитаю использовать первый метод, так как мне не нравятся предупреждения в моем коде.

1 голос
/ 19 марта 2012

Спасибо за ответ!У меня все получилось.

Первые 30 минут я просто не знал, что ты имел в виду и написал «Источник для мусора»…:))

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