UINavigationController не нажимает

У меня есть два UITableViews, встроенных в UINavigationController. Выбор ячейки в первом контроллере представления таблицы должен вызвать переход во второй. Этот переход не выполняется.

FirstTableVC

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   // getting called as planned
   if (indexPath.row == 0 && reload == YES) {
     // working
     [self pushedRefresh:self];
     reload = NO;
     return;
  }
  NSLog(@"past return"); // logged as planned
  // NOT performing!
  [self performSegueWithIdentifier:@"more" sender:[self.tableView cellForRowAtIndexPath:indexPath]];
}

Что я сделал/заметил

  • SecondTblVC's viewDidLoad: метод не вызывается. Однако, если я использую переходы без push-уведомлений, VC отображается правильно.
  • Я пробовал использовать nil и self в параметре отправителя для performSegueWithIdentifier: с теми же результатами.
  • Я преобразовал второй контроллер представления в ванильный UIViewController с теми же результатами.
  • Переход «больше» правильно помечен и подключен как push
  • Там нет сбоя, просто отсутствие перехода.
  • Я удалил всю настройку UINavigationController в раскадровке и заменил ее теми же результатами.
  • У меня нет отдельного файла .h/.m для UINavigationController
  • Ссылки табличного представления delegates/data source работают, как и планировалось.
  • Существует существует метод destinationViewController (узнанный при регистрации в методе performSegue).

Пожалуйста, дайте мне знать, если дополнительный код и скриншоты помогут.

Спасибо.

Изменить Вот моя реализация cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{
    static NSString *simpleTableIdentifier = @"ReuseCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    cell.textLabel.text = [clubNames objectAtIndex:indexPath.row];
    cell.detailTextLabel.text = [times objectAtIndex:indexPath.row];

    if (cell == nil) 
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier];
    }

    [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];

    return cell;
}

person eulr    schedule 12.10.2013    source источник
comment
Как вы создаете переход в раскадровке?   -  person Fogmeister    schedule 12.10.2013
comment
Перетащите из UITableViewCell в SecondTblVC и выберите push.   -  person eulr    schedule 13.10.2013
comment
Итак, вам вообще не нужно вставлять строку [self PerformSegue...]. Если он подключен из UITableViewCell, то выбор ячейки все равно вызовет переход. Просто удалите эту строку.   -  person Fogmeister    schedule 13.10.2013
comment
В порядке. Удалил, но без изменений.   -  person eulr    schedule 13.10.2013
comment
Я бы посоветовал прочитать учебник на сайте Рэя Вендерлиха об использовании раскадровки. Он проведет вас через это.   -  person Fogmeister    schedule 13.10.2013
comment
Имеют ли ячейки, создаваемые в cellForRowAtIndexPath, тот же идентификатор, который указан для ячейки-прототипа в раскадровке?   -  person Mike S    schedule 13.10.2013
comment
Если идентификаторы совпадают, может помочь, если вы опубликуете скриншот раскадровки.   -  person Mike S    schedule 13.10.2013
comment
Идентификаторы совпадают (dropbox.com/s/f8amawlk7qsy9so/) Я опубликовал указанный метод.   -  person eulr    schedule 14.10.2013


Ответы (1)


Попробуйте использовать контроллер табличного представления вместо табличного представления

  • В вашей раскадровке создайте идентификатор раскадровки для каждого из UITableViewControllers, то есть: vc1 и vc2.
  • In your vc1 function, lookup the storyboard ID for the second table view controller, which is :

    UITableViewController *vc2 = [self.storyboard instanceViewControllerWithIdentifier:@"vc2"]; [self.navigationController pushViewController:vc2 анимированный:YES];

person Madam Kiwi    schedule 25.11.2013
comment
Это было решено. Проблема была с пользовательским классом UiNavigationController. Ваше предложение было изложено в пункте 3. - person eulr; 25.11.2013