Мне нужно выполнить переход с моей раскадровки. Метод для вызова в этом случае -[UIViewController performSegueWithIdentifier:sender:]
. Этот метод использует свойство storyboard
UIViewController
для поиска раскадровки (и, следовательно, перехода).
Однако свойство storyboard
не устанавливается, если UIViewController
не было создано из раскадровки. И поскольку он доступен только для чтения, я не могу установить его программно, где я загружаю свою раскадровку.
Итак, вопрос: как выполнить переход из раскадровки, которая была загружена программным способом?
Если это невозможно, возможно, это из-за того, что моя архитектура неверна. Вот пример использования:
Приложение представляет собой устаревшее приложение с вкладками, где каждая из 8 вкладок имеет свой собственный файл NIB. Многие из 8 вкладок довольно сложны и могут извлечь большую пользу из раскадровок, особенно ячеек таблицы прототипов и статических таблиц. Поэтому я хочу развить приложение, чтобы использовать раскадровки.
Однако одна огромная раскадровка не кажется хорошей идеей: она предотвратит постепенные изменения в приложении, будет громоздкой, что затруднит для членов команды самостоятельную работу над вкладкой.
Правильный уровень модульности, похоже, позволяет UITabBarController
иметь свою собственную раскадровку. Это позволяет каждой вкладке развиваться в своем собственном темпе, и каждому разработчику легче работать над своей вкладкой с небольшим количеством конфликтов контроля версий.
До сих пор я подходил к основному файлу nib, содержащему UITabBarController
и каждый из его основных дочерних контроллеров представления. Контроллеры дочерних представлений загружают свои раскадровки по методу viewDidLoad
. И оттуда они не могут выполнить свою передачу.
Альтернативой может быть создание дочерних контроллеров представления из их раскадровок, но тогда как я могу подключить их к UITabBarController
? И куда мне программно загрузить раскадровки?
Спасибо за любые предложения.