как получить заголовок выбранной строки в UITableview - PullRequest
17 голосов
/ 15 декабря 2010

У меня есть табличное представление с некоторыми именами в каждой ячейке. Как я могу получить это имя при выборе строки?

я знаю, что должен использовать метод делегата

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

но как я могу получить этот заголовок этой строки?

спасибо заранее

1010 * привет *

Ответы [ 5 ]

54 голосов
/ 15 декабря 2010
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
    NSString *cellText = selectedCell.textLabel.text;
}

Этот фрагмент извлекает выбранную ячейку и сохраняет ее свойство text в NSString.


Однако Я не рекомендую этот .Лучше держать слои данных и представления отдельно.Используйте резервное хранилище данных (например, массив) и получите к нему доступ, используя данные в переданном объекте indexPath (например, индекс, который будет использоваться для доступа к массиву).Это хранилище данных будет тем же, которое использовалось для заполнения таблицы.

9 голосов
/ 15 декабря 2010

Предполагая, что вы используете стандартный UITableViewCell, вы можете получить ячейку с помощью

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

затем получите доступ к свойствам представления свойства текста через:

cell.textLabel.text
cell.detailTextLabel.text
3 голосов
/ 20 декабря 2010

вы можете получить доступ к каждой строке вашего uitabelview, используя следующую (uitableview-) функцию:

cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]

, кстати, чтобы получить доступ к вашему табличному представлению другими методами, кроме метода делегата uitableview, вы должны подключить егов IB (например ..)

надеюсь, это поможет

2 голосов
/ 15 декабря 2010

После того как вы зарегистрировали один из ваших классов в качестве делегата через свойство делегата UITableView , вы просто реализуете метод tableView:didSelectRowAtIndexPath:, который будет вызываться, когда пользователь выбирает строку. (См. Справочник по протоколу UITableViewDelegate для получения дополнительной информации.)

Затем вы можете извлечь текст метки из выбранной ячейки через ...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        NSString *cellLabelText = cell.textLabel.text;
    }

.. если это действительно то, что вам нужно.

0 голосов
/ 26 августа 2014
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    NSString *rowTitle=[tableView cellForRowAtIndexPath:indexPath].textLabel.text;   
}

Здесь

[tableView cellForRowAtIndexPath: indexPath] дает вам выбранную ячейку, а затем .textLabel.text дает вам метку для этой ячейки.

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