Как перейти из родительского UINavigationController - PullRequest
0 голосов
/ 01 марта 2019

У меня есть следующий код, который устанавливает и показывает UIViewController для встраивания в UINavigationController:

private func transitionToMainVC() {
  let vc = UINavigationController(rootViewController: SpacesVC())

  DispatchQueue.main.async {
    self.show(vc, sender: self)
  }
}

Теперь в SpacesVC я хочу show() другой UIViewController, но за пределами"parent" UINavigationController.

Когда я использую следующий код в SpacesVC:

// Called by a button touch up inside
@objc private func transitionToMainVC() {
  let vc = NextVC()

  self.show(vc, sender: self)
}

Он переходит на NextVC, но показывает панель навигации в верхней частиэкран;т. е. новый контроллер представления все еще встроен в соответствии с определениями UINavigationController, указанными в первом фрагменте.

Мне известно о возможности скрытия панели навигации в NextVC как таковой:

override func viewWillAppear(_ animated: Bool) {
  super.viewWillAppear(animated)
  navController.isNavigationBarHidden = true
}

Но я хочу show() NextVC без встраивания его в контроллер навигации, так как он мне больше не понадобится.Как я могу это сделать?

1 Ответ

0 голосов
/ 01 марта 2019

Используйте этот метод вместо show.

func present(_ viewControllerToPresent: UIViewController, 
    animated flag: Bool, 
  completion: (() -> Void)? = nil)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...