Быстрая навигационная панель не появляется, когда на раскадровку ссылаются после входа в систему - PullRequest
0 голосов
/ 14 апреля 2020

Когда я запускаю сборку для приложения, логин и регистрация работают нормально, но когда он переносится в раскадровку HomeV C, он кажется пустым. Чтобы удостовериться, что на него ссылаются правильно, я наложил на него метки, которые появлялись во время сборок, но на самом деле остается невидимой - это панель навигации. Пожалуйста, помогите:)

Как раскадровка HomeV C упоминается при входе и регистрации

Вход в систему:

 else {
      let homeViewController = self.storyboard?.instantiateViewController(identifier: Constants.Storyboard.homeViewController) as? HomeViewController
       self.view.window?.rootViewController = homeViewController
       self.view.window?.makeKeyAndVisible()

Регистрация:

func transitionToHome(){
     let homeViewController = storyboard?.instantiateViewController(identifier: Constants.Storyboard.homeViewController) as? HomeViewController
     view.window?.rootViewController = homeViewController
     view.window?.makeKeyAndVisible()

Вот раскадровка для входа в систему Here is the login storyboard

Панель навигации четко видна в раскадровках The navigation bar is clearly apparent in the storyboards

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Я считаю, что проблема в том, что вы делаете контроллер вида ключевым окном, а не добавляете контроллер навигации. Попробуйте сделать навигационный контроллер контроллера домашнего просмотра окном клавиш.

0 голосов
/ 14 апреля 2020

Вы можете попытаться использовать переход

// This is used to perform the segue with the approporiate identifier
    self.performSegue(withIdentifier: "Your unique identifer of the seugue", sender: self)

// Prepare for segue is used if you want to modify some properities in the desintation viewcontroller
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "Your identifier of the segue" {
        // This is used to fetch the destination and cast it to pass over the values
        if let dc = segue.destination as? YourClassOfTheDestination {
            // Here can you type into dc and pass over the values

            //Example
            dc.curentFruit = "Pear"
        }
    }
}

Вот изображение о том, как указать пользовательский идентификатор перехода в раскадровке. Вот изображение

Если вы не хотите, чтобы панель навигации отображалась на определенных экранах, вы можете просто использовать:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    self.navigationController?.navigationBar.isHidden = true
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillAppear(animated)

    self.navigationController?.navigationBar.isHidden = false
}

Не забудьте сделать его видимым снова, когда представление исчезает.

Отличный вопрос, надеюсь, ответ поможет!

...