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

Элемент кнопки панели навигации, отсутствующий после стиля segue "Заменить",

iPad-приложение, над которым я работаю, использует раскадровки и segues. Я пытаюсь отобразить другой контроллер представления, когда пользователь нажимает на разные ячейки в главном представлении. После обращения к различным учебным пособиям были предприняты следующие шаги:

  • В Storyboard, Master View Controller созданы статические ячейки для представления таблицы и добавлены 3 разных строки (т.е. ячейка 1, ячейка 2, ячейка 3)
  • Добавил View Controller, выбрал его и привязал к нему Navigation Controller (EditorEmbed InNavigation Controller)
  • Из ячейки 1 в Master View я сделал ctrl-click на Navigation Controller.
  • Выберите Segue Style "Заменить" и Destination "Подробное разделение"
  • В tableView: didSelectRowAtIndexPath, добавлен [self performSegueWithIdentifier: @ "NewViewController" отправитель: self] для перехода.

Результат, который я вижу, - это замещение деталей.

Но на панели навигации нет элемента кнопки Master.

Таким образом, я не могу нажать кнопку Master, которая отобразит таблицу, содержащую ячейки, откуда я могу перейти к другому виду.

Я уже читал много блогов и видел комментарии, которые говорят о замене segue для подобных проблем. Однако никто не сталкивался с этой конкретной проблемой при использовании раскадровки и segues.

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

4b9b3361

Ответ 1

Попробуйте изменить Segue Style с Replace на Push. Он должен решить вашу проблему.

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

Ваш стек контроллера навигации перед нажатием "Подробно":

Master

Ваш контроллер навигации после нажатия на детали и навигации немного больше...:

Master -> Detail (Navigation button is displayed) -> Some other details (Navigation button is displayed) -> And maybe some more (Navigation button is displayed)

Когда вы вызываете новый segue с помощью Replace, как вы это делали, Master будет заменен на Detail, и вы не сможете вернуться назад, потому что Мастер был заменен, и он больше не находится в стеке.

Ваш стек контроллера навигации перед нажатием "Подробно":

Master

Ваш навигационный контроллер после нажатия на детали с помощью замены, как и вы:

Detail (no navigation button because master was replaced and we don't have nothing more on the stack)