如何设置导航栏的后退项

时间:2016-09-14 08:36:57

标签: ios swift uinavigationcontroller

我有一个导航栏,从另一个视图控制器以模态方式显示,因此后面的项目没有显示,

我需要交叉溶解到第二个视图控制器,并在其上放置导航栏而不在第一个视图控制器上放置一个导航栏,在第二个视图控制器的导航栏上,后退按钮看起来应该与系统后退按钮完全相同。

2 个答案:

答案 0 :(得分:0)

当您按下ViewController时,后退项会自动出现。当你以模态方式呈现它时,你会在初始导航控制器之外进行它,因此它的导航会被新的导航控制器隐藏。

带有建议解决方案的版本:在UINavigationViewController中嵌入第一个UIViewController并推送第二个而不是以模态方式呈现它。

答案 1 :(得分:0)

如果您有导航栏并且需要自定义后退按钮,则可以像这样添加:

let button = UIBarButtonItem(title: "Back Title", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(someMethod))
self.navigationItem.leftBarButtonItem = button

在您的选择器中,您可以关闭当前的viewController或调用其他一些返回方法

修改

如果你需要一些带有标准推送过渡风格的自定义动画,你可以做下一步:

例如,在故事板中使用SecondViewController id

创建viewController

在您的转换操作方法中,请执行以下操作:

func showSecondViewController() {
    guard navigationController != nil else {
        return
    }
    guard let secondViewController = storyboard?.instantiateViewControllerWithIdentifier("SecondViewController") else {
        return
    }
    navigationController!.pushViewController(secondViewController, animated: false)
    UIView.transitionWithView(navigationController!.view, duration: 1, options: .TransitionCrossDissolve, animations: nil, completion: nil)
}