Как перейти от одной раскадровки к другой TabBarController? - PullRequest
0 голосов
/ 13 февраля 2020

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

Onboarding.storyboard

Кнопка «Не сейчас», предназначенная для навигации из это встроенный раскадровка для раскадровки ForYou с раскадровкой, встроенной в контроллер навигации и контроллер панели вкладок.

ForYou.storyboard

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

let barViewControllers = UIStoryboardSegue.init(identifier: "ForYou", source: OnboardingMasterViewController(), destination: ForYouViewController()) as! UITabBarController
let nav = barViewControllers.viewControllers![0] as! UINavigationController
let destinationViewController = nav.topViewController as! ForYouViewController

Он успешно построен, но когда я запускаю его на симуляторе, приложения обрабатывают sh и показывают эту строку ошибки, которую я никогда раньше не видел и не изучал. Ошибка: Поток 1: EXC_BAD_INSTRUCTION (код = EXC_I386_INVOP, субкод = 0x0)

Error Message

Я пытался посмотреть в Google, но либо использовал неверное ключевое слово или мое непонимание, я все еще не могу решить эту ошибку. Надеюсь, один из вас может дать мне руководство по поиску решения.

Спасибо.

1 Ответ

0 голосов
/ 13 февраля 2020

Я предполагаю, что вы уже дали идентификатор Segue, который я могу видеть на Onboarding Storyboard для ForYou Storyboard.

Если нет, нажмите на Segue в вашей раскадровке и дайте его идентификатор.

Теперь, нажимая кнопку Not Now, вы можете выполнить следующий код вместо имеющегося у вас кода

performSegue(withIdentifier: "your-segue-identifier", sender: nil)

ИЛИ

Вы можете напрямую подключить Перейдите в раскадровку с вашей кнопки Not Now на раскадровку ForYou, чтобы вам не нужно было писать код для этого.

...