首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何跳出父UINavigationController

问如何跳出父UINavigationController
EN

Stack Overflow用户
提问于 2019-03-01 23:49:04
回答 1查看 31关注 0票数 0

我有以下代码,它设置并显示了要嵌入到UINavigationController中的UIViewController:

代码语言:javascript
复制
private func transitionToMainVC() {
  let vc = UINavigationController(rootViewController: SpacesVC())

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

现在,在SpacesVC中,我想要show()另一个UIViewController,但是在“父”UINavigationController之外。

当我在SpacesVC中使用以下代码时

代码语言:javascript
复制
// Called by a button touch up inside
@objc private func transitionToMainVC() {
  let vc = NextVC()

  self.show(vc, sender: self)
}

它会转换到NextVC,但会在屏幕顶部显示导航栏;也就是说,新的视图控制器仍然嵌入在第一个代码片段中定义的UINavigationController下。

我知道在NextVC中隐藏导航栏的可能性如下:

代码语言:javascript
复制
override func viewWillAppear(_ animated: Bool) {
  super.viewWillAppear(animated)
  navController.isNavigationBarHidden = true
}

但是我想在不嵌入导航控制器的情况下对NextVC进行show(),因为我不再需要它了。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-02 00:05:01

使用this method而不是show。

代码语言:javascript
复制
func present(_ viewControllerToPresent: UIViewController, 
    animated flag: Bool, 
  completion: (() -> Void)? = nil)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54948029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档