2016-04-13 9 views
0

Я реализую иерархию навигации в раскадровке. Для части моей навигации я сверляю через дерево данных, поэтому у меня есть несколько контроллеров представления в строке с таким же взглядом, но с различным управлением данными, поэтому им нужны отдельные контроллеры. Чтобы избежать дублирования, я сделал макет для этих представлений в XIB, создал класс VC для XIB для обработки настроек, а затем я расширяю этот класс для каждого VC в раскадровке, чтобы обрабатывать вещи UITableViewDataSource.Как использовать segues от контроллера вида, у которого есть XIB для его дизайна?

Теперь навигация работает нормально, но я хочу, чтобы на представлениях XIB появилась кнопка, которая запускает разматывание назад к началу. У меня есть segues, настроенный с идентификаторами в раскадровке из моих VC с макетом XIB на главный экран, но независимо от того, что я делаю, когда я звоню performSegueWithIdentifier, я всегда получаю ошибку has no segue with identifier.

Я думаю, что все, что добавлено в контроллер просмотра в раскадровке, удаляется при загрузке XIB. Я обнаружил, что это происходит с моим элементом навигации в этих представлениях, и мне нужно было создать элемент навигации в коде, так как нет возможности добавить его в XIB. Я подозреваю, что что-то связанное происходит с segues, но я не могу разобраться в обходном пути. Невозможно ли иметь VC в раскадровке с его расположением в XIB, а затем выполнить отступ от него? Есть ли программный способ сделать развязку, не настраивая ее в раскадровке?

ответ

0

Размотчик доступен, только если вы используете раскадровку. Поэтому в вашем случае вы должны использовать UINavigationController.popViewControllerAnimated или UIViewController.dismissViewControllerAnimated:completion:.

+0

Я знаю, что segues доступны только в раскадровке, а я _am_ использую раскадровку. Проблема заключается в том, что если контроллер представления в раскадровке имеет свой корневой вид, определенный XIB, segues фактически не подключается. Я считаю, что это всего лишь ошибка в интерфейсе Builder. – NewShelbyWoo