2012-03-19 3 views
2

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

Теперь, когда пользователь нажимает на 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

ответ

3

Jullian просто введите отливать UITableViewCell в пользовательский класс как

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

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

1

Спасибо за ответ! Я заработал.

Для первых 30 мельчайшей я просто не знал, какие you'v имел в виду и написал источник для мусора ... :))

+0

@jullian вместо того, чтобы ответить на ваш вопрос, вы можете прокомментировать мой ответ ...: D в любом случае хорошо, что вы поняли мое мнение. –

Смежные вопросы