如何为后退按钮“ prepareSegue”?

时间:2018-09-19 01:19:39

标签: ios swift xcode

我有一个非常简单的问题。在我的应用程序中,有些屏幕带有导航栏,有些则没有。因此,我所做的是使用此行prepareForSegue:self.navigationController?.setNavigationBarHidden(true/false, animated: false)中的屏幕之间手动标记。现在,如果我想通过单击后退按钮从带有导航栏的视图控制器返回到没有它的视图控制器,该怎么办?我尝试将其放在子视图控制器的prepareForSegue:中,但是它不起作用。

谢谢。

2 个答案:

答案 0 :(得分:1)

这取决于您如何维护隐藏/取消隐藏导航栏的标志,但是您可以对同一标志使用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放在viewWillAppearviewWillDisappear中,用于每个viewController。

答案 1 :(得分:0)

您还可以使用更好的方法来消除紧张感

override func didMoveToParentViewController(parent: UIViewController?) {
    if (parent == nil) {
        println("Back Button Pressed!")
    }
}