Подтвердить что ты не робот

Получите textLabel текст выбранной ячейки с помощью iPhone SDK

Я хотел бы знать, как получить строковое значение textLabel для выбранного uitableviewcell.

4b9b3361

Ответ 1

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
   // now you can use cell.textLabel.text
}

Ответ 2

Вы можете получить ячейку, используя [self.tableView cellForRowAtIndexPath:], а затем получить доступ к свойству textLabel.text, но обычно это лучший способ.

Обычно вы заполняете свою таблицу на основе некоторого массива моделей, к которому имеет доступ ваш UITableViewController. Таким образом, лучший способ справиться с этим в большинстве случаев - взять номер строки ячейки, которая была выбрана, и использовать ее для поиска связанных данных в вашей модели.

Например, предположим, что ваш контроллер имеет массив объектов Buddy, у которых есть свойство name:

NSArray *buddies;

Вы заполняете этот массив, запуская запрос или что-то в этом роде. Затем в tableView:cellForRowAtIndexPath: вы создаете ячейку представления таблицы на основе каждого имени приятеля:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BuddyCell"];
    if (!cell) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BuddyCell"] autorelease];
    }
    cell.textLabel.text = [buddies objectAtIndex:indexPath.row];
    return cell;
}

Теперь, когда пользователь выбирает строку, вы просто вытаскиваете соответствующий объект Buddy из своего массива и делаете что-то с ним.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    Buddy *myBuddy = [buddies objectAtIndex:indexPath.row];
    NSLog (@"Buddy selected: %@", myBuddy.name);
}

Ответ 3

if (selected)
{
    indicator.image = [UIImage imageNamed:@"IsSelected.png"];
    [arrSlectedItem addObject:strselecteditem];
    NSLog(@"-- added name is %@", strselecteditem);

}
else
{
    indicator.image = [UIImage imageNamed:@"NotSelected.png"];
    [arrSlectedItem removeObject:strselecteditem];
    NSLog(@"--- remove element is -- %@", strselecteditem);
}

Ответ 4

Если кто-то споткнется об этом и задается вопросом, как это сделать быстро, код ниже. Также не забудьте использовать необязательную привязку, чтобы развернуть эту опцию, а также не распечатывать "Необязательно (" Метка с меткой ").

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        let cell = tableView.cellForRowAtIndexPath(indexPath)

        // Unwrap that optional
        if let label = cell?.textLabel?.text {
            println("Tapped \(label)")
        }
    }

Ответ 5

Вот что я использовал: очень просто

    func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){

    if editingStyle == UITableViewCellEditingStyle.Delete
    {

        //create cellobj with indexpath for get it text
         let cell = tableView.cellForRowAtIndexPath(indexPath)
        let celltext = (cell?.textLabel?.text!)! as String
        //do what ever you want with value
        print((cell?.textLabel?.text!)! as String)



    }
}