2014-02-06 2 views
1

Итак, у меня есть строка с именем cellNumString, которую я создал в .h моего DetailViewController. В моем HistoryTableViewController.m у меня есть метод prepareForSegue, в котором я устанавливаю строку на что угодно. Теперь у меня есть это:Как получить значение cell.textlabel.text в моем методе prepareForSegue?

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

    if ([[segue identifier] isEqualToString:@"Push"]) { 

     HistoryDetailsViewController *detailVC = (HistoryDetailsViewController*)segue.destinationViewController; 
     [detailVC setCellNumString:@" cell number"]; 
    } 
} 

Все, что я хочу, это @ «номер ячейки» часть должна быть изменена на cell.textlabel.text. Но я не могу использовать ячейку. Как я могу получить значение cell.textlabel.text и использовать его в качестве моей строки, чтобы перейти к следующему представлению?

Вся помощь приветствуется, спасибо.

+1

проход в клетке как отправителем в вызове performSegue – mbehan

ответ

3

Если переход на ячейку, вы можете использовать этот ответ https://stackoverflow.com/a/13989915/1835155

вы можете получить также получить выбранную ячейку с помощью:

NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow]; 
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:selectedIndexPath]; 
NSLog(@"%@", cell.textLabel.text); 
+0

Благодарим Вас Благодарим Вас !!!! Вы не представляете, как долго я охотился, чтобы заставить все это работать! Я могу принять ваш ответ за 1 минуту! – doc92606

+0

Подождите, у меня есть еще один быстрый вопрос. Мне удалось получить файл cell.textlabel.text, но теперь мне было интересно, как я могу получить свои два разных раздела в методе prepareforSegue? – doc92606

+0

Не обращайте на это внимание, если (indexPath.section == 0) {} – doc92606

1

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

//If you want the selected cell  
NSIndexPath *path = [self.tableView indexPathForSelectedRow]; 
//If you know the cell row index e.g. 1, 2, 3... 
NSIndexPath *path = [NSIndexPath indexPathWithIndex:yourRow]; 
//Create the cell at the index path 
UITableViewCell *cell = [tableView cellForRowAtIndexPath:path] 
//Do stuff with cell... 
1

Передайте выбранную ячейку в качестве параметра отправителя к performSegueWithIdentifier:sender:, например, так:

[self performSegueWithIdentifier:@"showPromoViewController" sender:cell]; 

Тогда в prepareForSegue:sender:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

    if ([[segue identifier] isEqualToString:@"Push"]) { 

     HistoryDetailsViewController *detailVC = (HistoryDetailsViewController*)segue.destinationViewController; 

     // Get the value of cell.textlabel.text 
     UITableViewCell *cell = (UITableViewCell *)sender; 
     NSString *text = cell.textLabel.text; 

     // Pass it to the destination view controller 
     [detailVC setCellNumString:text]; 
    } 
} 
Смежные вопросы