prepareForSegue не вызывается, когда выбрана строка UITableView? - PullRequest
13 голосов
/ 22 февраля 2012

Я настроил 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__);
}

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

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

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

EDIT:

Добавлено:

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

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

Ответы [ 2 ]

31 голосов
/ 23 февраля 2012

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

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

6 голосов
/ 23 февраля 2012

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

[self performSegueWithIdentifier:@"yourSegueName"];    

и посмотрим, сработает ли это.

...