Преобразование аксессуараButtonTappedForRowWithIndexPath в didSelectRowAtIndexPath

В настоящее время этот метод реализован

-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
// Search the View controller form the cell specified.
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
self.cellPhrase = cell.textLabel.text;
NSLog(@"cellPhrase %@", self.cellPhrase);

// Perform the segue.
[self performSegueWithIdentifier:@"phraseSelectionSegue" sender:self];

}

Что работает, но это означает, что я могу использовать только маленькую иконку I, а не всю ячейку, поэтому я хотел перейти на didSelectRowAtIndexPath

Поэтому я реализовал метод

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
 // Search the View controller form the cell specified.
 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
 self.cellPhrase = cell.textLabel.text;
 NSLog(@"cellPhrase %@", self.cellPhrase);

 // Perform the segue.
 [self performSegueWithIdentifier:@"phraseSelectionSegue" sender:self];
}

Затем я переместил индикатор Accessory to Disclosure и убедился, что мой Segue нажимает Selection Segue.

Однако, когда я запускаю приложение, оно, похоже, не проходит.

Мне было интересно, может ли кто-нибудь понять, почему.

1 ответ

Проверьте значение allowsSelection для вашего tableView. Ячейки не будут вызывать didSelectRowAtIndexPath если значение false.

licensed under cc by-sa 3.0 with attribution.