不能在 Swift 中关闭导航控制器
Posted
技术标签:
【中文标题】不能在 Swift 中关闭导航控制器【英文标题】:Can't dismiss navigation controller in Swift 【发布时间】:2015-06-29 20:31:37 【问题描述】:所以我有一个简单的导航控制器,带有一个注册,点击完成,然后你转到主页。问题是当您转到主页时,导航控制器随之而来。
正如您在最后一张图片(主页)中看到的那样,导航栏仍然存在。当用户在第一张图片上按“完成”时,我使用self.performSegueWithIdentifier("loginTrue", sender: nil)
转到“主页”。我试过使用
self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
但似乎什么也没发生。所以总结一下,关于如何从“主页”“关闭”导航控制器的任何想法?谢谢!
【问题讨论】:
【参考方案1】:试试
self.navigationController?.popViewControllerAnimated(true)
更新:Swift 4.2
self.navigationController?.popViewController(animated: true)
【讨论】:
【参考方案2】:注册视图控制器是否以模态方式呈现?然后,在注册视图控制器上,你可以做
self.dismiss(animated: true, completion: nil)
【讨论】:
【参考方案3】:尝试仅对 LoginView 使用ViewController
。然后使用self.dismiss
和PerformSegue
到达NavigationController
。
【讨论】:
【参考方案4】://hide the navigation bar on this page
override func viewWillAppear(_ animated: Bool)
self.navigationController?.isNavigationBarHidden = true
这将隐藏您主页上的导航栏,但请确保您使用 viewWillAppear,这样无论何时返回某个页面,导航都不会重新出现。
【讨论】:
以上是关于不能在 Swift 中关闭导航控制器的主要内容,如果未能解决你的问题,请参考以下文章
从 TableViewController 中关闭 ViewController