Переход раскадровки на разные контроллеры представления для разных ячеек табличного представления - PullRequest
1 голос
/ 20 февраля 2012

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

Раскадровка подключена от табличного вида к подробному. Но это то, чего я хотел бы достичь:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
  if ([[segue identifier] isEqualToString:@"mytransition"]) {

    NSInteger sectionId = [[self.tableView indexPathForSelectedRow] section];
    if (sectionId == 0) {
        NSLog(@"try to change the destination view controller");
        //I don't know if this is possible?!
    } else {
        NSLog(@"Proceed with the original destination view controller");
        //this is ok
    }
  }
}

РЕДАКТИРОВАТЬ: я нашел решение! Вы можете посмотреть его здесь: http://forums.macrumors.com/showthread.php?t=1274743

Таким образом, решение включало использование комбинации prepareForSegue и didSelectRowAtIndexPath для всех, кто заинтересован. Вместо того, чтобы связывать каждую ячейку с другим представлением, создайте другой переход от контроллера к каждому из желаемых контроллеров представления. Затем проверьте идентификатор segue.

-Jen

1 Ответ

3 голосов
/ 08 августа 2012

Джен права. Решение по ссылке Джен работает.

  • Создайте segue из ячейки прототипа в таблице к контроллеру представления назначения.
  • Установить идентификатор перехода.
  • Измените didSelectRowAtIndexPath, чтобы получить номер строки выбранной ячейки, и вызовите performSegueWithIdentifier с идентификатором segue для этой ячейки.
...