如何修复导航栏的后退按钮?

时间:2019-03-24 03:12:49

标签: swift iphone xcode

嗨,我一直在尝试更改应用程序导航栏中的后退按钮。问题是,当我两次加载视图时,我看到了更改。

我已经搜索了几次答案,但是我没有真正想要的。实际上,我是这种语言的新手,所以很难。

我尝试在viewWillAppear方法和其他方法中添加以下几行:

nav?.navigationBar.backItem?.title = "Messages"

结果是,当我进入视图时,看到后退按钮的标题 Back 。然后,如果我按该按钮并再次进入视图,则标题会根据需要更改。另一方面,我想要的是在我第一次加载视图时更改标题。

*->我也尝试过在viewDidLoad中的同一行以及上一个视图的viewWillDisappear中是否有任何作用,但是什么也没发生。

1 个答案:

答案 0 :(得分:1)

您正在使用方法在当前ViewController中使用“后退”按钮,这是错误的,因为在过去的控制器中配置了navigationBar。如果您使用Storyboard,请在父控制器中尝试以下方法:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let backItem = UIBarButtonItem()
    backItem.title = "Messages"
    navigationItem.backBarButtonItem = backItem
}

如果在parentController中初始化newController,则必须在parentController中修改backButton,例如:

//这是任何按钮提示您newController的动作

@objc private func presentDetailViewContorller() {
    let weatherDetailController = WeatherDetailController()
    let navController = NavigationController(rootViewController: weatherDetailController)
    let backItem = UIBarButtonItem()
    backItem.title = "Messages"
    navController.backBarButtonItem = backItem
    self.present(navController, animated: true, completion: nil)
}

祝你好运!