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

PrepareForSegue не вызывается, когда выбрана строка UITableView?

Я установил UITableView с помощью NSFetchedResultsController, который отображает несколько прототипов UITableViewCells. Я подключил push-сегу от моего UITableViewCell к моему DetailViewController.

В моем TableViewController я выполнил оба варианта:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"%s", __PRETTY_FUNCTION__);
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSLog(@"%s", __PRETTY_FUNCTION__);
}

Когда я запускаю приложение и нажимаю на строку в таблице, мое приложение только вызывает:

[TableViewController tableView:didSelectRowAtIndexPath:]
[TableViewController tableView:didSelectRowAtIndexPath:]
[TableViewController tableView:didSelectRowAtIndexPath:]

Если я удалю segue и перевяжу его с UIBarButtonItem в DetailViewController, тогда вызов будет вызван правильно, может кто-нибудь подумать, чего я не хватает?

EDIT:

Добавлено:

- (IBAction)tester:(id)sender {
    [self performSegueWithIdentifier:@"SEGTEST" sender:nil];
}

и подключил его к UIButtonBarItem, который называется "тестер", и он работает, я просто не могу заставить его загореться, когда я связываюсь с UITableViewCell с контроллером.

4b9b3361

Ответ 1

После небольшого рытья я в конце концов обнаружил, что идентификатор UITableViewCell был установлен неверно на "CELL_ID", когда он должен был быть "PLANTCELL_ID".

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

Ответ 2

Перезапустите свой segue из самого ViewController и дайте ему имя. Затем в методе didSelectRow вызывается

[self performSegueWithIdentifier:@"yourSegueName"];    

и посмотреть, срабатывает ли он.