Переход не работает в приложении с вкладками с TableView и контроллером навигации

Я только что прочитал и посмотрел около 20 видео, вопросов и статей по StackOverFlow, но все они устарели. Это руководство и видео оказались наиболее полезными. Вы можете видеть, что я выполнил шаги, но ничего не происходит, когда я щелкаю ячейку.

Я также перезаписываю didSelectRowAtIndexPath некоторыми действиями, и они выполняются правильно, когда я щелкаю ячейку, но переход ничего не делает.

Я пытаюсь настроить свое приложение, чтобы пользователи просматривали две вкладки (каждая из которых содержала TableView) и могли щелкнуть ячейку для отправки на другой экран. Подобно интерфейсу вкладок Twitter..., щелкните ячейку TableView для просмотра отдельной информации.

Когда я использовал функцию «Редактор»> «Встроить в» Xcode, он поместил контроллер навигации перед табличным представлением. Однако ранее я пытался: TabView -> UINavigationController -> UIViewController. Я не уверен, кто здесь прав. Я попробовал оба варианта, и оба они не изменили представление, когда я щелкнул ячейку.

Это должно быть сделано без кода, верно?

1-я попытка: ниже я сделал первую вкладку, используя функцию «Редактор»> «Встроить».

введите здесь описание изображения

Еще один другой подход/попытка: ниже я перетащил навигационный контроллер (который принес 2 поля, одно из которых по какой-то причине является TableView) и настроил переход от исходного TableView к навигационному контроллеру.

введите здесь описание изображения


person User    schedule 23.09.2014    source источник
comment
Первая попытка выглядит неплохо. Если хотите, загрузите проект, и я посмотрю на него.   -  person carlodurso    schedule 25.09.2014
comment
Конечно, как мне это сделать?   -  person User    schedule 25.09.2014
comment
на ge.tt или аналогичном.   -  person carlodurso    schedule 25.09.2014
comment
Ваша вторая попытка не то, что вы хотите. В вашей первой попытке, когда вы настраивали переход от UITableViewCell к UIViewController, какой тип перехода вы выбрали? Кроме того, вы перетаскивали элемент управления из ячейки таблицы или из значка контроллера табличного представления?   -  person Mike S    schedule 27.09.2014
comment
Я выбрал show и перетаскивал из ячейки на доске раскадровок несколько раз.   -  person User    schedule 27.09.2014


Ответы (3)


В вашем проекте не хватало двух частей:

  1. Идентификатор перехода на Main.storyboard. Я назвал его детали.
  2. self.performSegueWithIdentifier("details", sender: self) в делегате tableView didSelectRowAtIndexPath.

Удачного xCoding.

person carlodurso    schedule 25.09.2014
comment
Я только что протестировал новый проект и подтверждаю, что переходы работают без дополнительного кода. В вашем проекте должно быть что-то конкретное, что вызывает такое поведение. - person carlodurso; 26.09.2014

Я думаю, что либо вам нужно выполнить ручной переход, дать ему идентификатор, а затем вызвать этот переход с помощью

self.performSegueWithIdentifier("myIdentifier", sender:self)

в твоем

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)

или вы делаете свой переход в своей раскадровке, удерживая «ctrl», а затем перетаскивая из своей ячейки в контроллер представления, к которому вы хотите перейти. Когда у вас есть NavigationController перед вашим вторым ViewController, вам нужно перетащить на NavigationController.

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

person borchero    schedule 29.09.2014

Я собирался прокомментировать, но у меня недостаточно репутации.

в дополнение к тому, что сказал @minneostasteve, ваша раскадровка на самом деле правильно настроена на первом рисунке, но не на втором рисунке.

т.е. контроллер панели вкладок -> навигационный контроллер -> tableviewcontroller -> viewcontroller

person iamdavidlam    schedule 23.09.2014
comment
Я перезаписываю didSelectRowAtIndexPath, в этом проблема? - person User; 25.09.2014
comment
Что ты имеешь в виду? Это дает вам ошибку? Есть ли вообще какие-либо данные в tableView? Насколько мне известно, вам действительно нужно определить хотя бы источник данных для таблицы в вашем ViewController, чтобы отображалась/заполнялась хотя бы одна ячейка. В противном случае вы никогда не сможете нажать «контроллер подробного представления». - person iamdavidlam; 25.09.2014
comment
Нет ошибки. Да, данные заполнены. Ячейка просто становится синей после нажатия. - person User; 25.09.2014
comment
на вашем месте я бы открыл новый проект с шаблоном основной детали и сравнил код. из вашего описания кажется, что а) вы не установили делегата tableview для VC, б) вы не подключили Cell к segue - person iamdavidlam; 26.09.2014