我有一个非常简单的问题。在我的应用程序中,有一些屏幕有一个导航栏,有些屏幕没有它。所以,我所做的是使用此行prepareForSegue:
在self.navigationController?.setNavigationBarHidden(true/false, animated: false)
的屏幕之间手动标记。现在,如果我想通过单击后退按钮从具有导航栏的视图控制器返回到没有它的视图控制器,我该怎么办?我尝试将它放在子视图控制器的prepareForSegue:
中,但它不起作用。
谢谢。
这取决于你如何维护你的标志隐藏/取消隐藏导航栏,但你可以使用UINavigationControllerDelegate
相同
@available(iOS 2.0, *)
optional public func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool)
@available(iOS 2.0, *)
optional public func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool)
或者,你可以尝试将setNavigationBarHidden
放在viewWillAppear
和viewWillDisappear
中为每个viewController。
你也可以使用更好的方法解开segue
override func didMoveToParentViewController(parent: UIViewController?) {
if (parent == nil) {
println("Back Button Pressed!")
}
}