#swift
#swift
Вопрос:
У меня есть раскадровка, которая включает сцену TabBarController. Я пытаюсь создать его программно, а затем установить в качестве RootViewController.
Я установил точку останова после установки переменной раскадровки и могу подтвердить, что она ее находит. Проблема заключается в загрузке сцены для TabBarController.
Я попытался создать пользовательский подкласс TabBarController и установить его в качестве имени «Класса» в инспекторе идентификации, и я получаю то же самое.
Я также пробовал создавать экземпляры UIViewControllers в той же раскадровке, и они отлично открываются. Это просто происходит с TabBarController. Возможно, это ограничение и не может быть выполнено.
@IBAction func loginButtonTapped(_ sender: UIButton) {
let storyboard = UIStoryboard(name: StoryboardConstants.Composition, bundle: nil)
if let vc = storyboard.instantiateViewController(withIdentifier: "Tabbar") as? UITabBarController {
UIApplication.shared.keyWindow?.rootViewController = vc
}
}
Это ошибка, которую я получаю:
* Завершение работы приложения из-за неперехваченного исключения ‘NSInternalInconsistencyException’, причина: ‘Не удалось загрузить контроллер просмотра сцены для идентификатора ‘Tabbar» * Стек вызовов первого запуска:
Ответ №1:
Наконец-то это заработало! Итак, у меня все было правильно настроено в инспекторе идентификации, проблема заключалась в том, что я не назначил раскадровку ссылке на раскадровку, которую я связал с TabBarController.
Ошибка не дала мне подсказки, но, надеюсь, это кому-нибудь поможет.
Комментарии:
1. Как назначить раскадровку ссылке на раскадровку?
Ответ №2:
Вы не установили идентификатор раскадровки для этого контроллера представления.
- Откройте раскадровку.
- Выберите желтый ViewController
- Коснитесь инспектора идентификации (3-е нажатие в группе справа).
- Введите «Панель вкладок» в поле «Идентификатор раскадровки»
Комментарии:
1. Ссылка Я ввел идентификатор раскадровки, вот скриншот того, что у меня есть.
Ответ №3:
убедитесь, что вы добавили панель вкладок в цель проекта. Еще один вариант — очистить ваш проект, перестроить и проверить с помощью identity inspector, есть ли отключенное соединение с раскадровкой.
Комментарии:
1. Можете ли вы добавить скриншот, объясняющий, как выглядит «проверка с помощью identity inspector на предмет наличия отключенного соединения с раскадровкой»?