【问题标题】:How can I fix my navigation bar back button?如何修复我的导航栏后退按钮?
【发布时间】:2019-05-17 13:58:44
【问题描述】:

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

我已经多次寻找答案,但我没有看到我真正想要的。事实上,我是这门语言的新手,所以很难。

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

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

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

*-> 我在viewDidLoad 中也尝试过相同的行,看看它是否有任何作用,在前一个视图的viewWillDisappear 中,但没有任何反应。

【问题讨论】:

  • 您需要在呈现的viewController中进行设置。如果您使用的是prepare for segue,请尝试navigationItem.backBarButtonItem = UIBarButtonItem(title: "Messages", style: UIBarButtonItemStyle.plain, target: nil, action: nil)
  • 你应该从父视图控制器设置它。如果您使用的是故事板,请点击父 VC 的导航栏并更改后退按钮属性检查器(右侧面板)
  • 嘿@Don!我试过你说的,但这次按钮不会随时改变

标签: swift iphone xcode


【解决方案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)
}

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2014-01-16
    相关资源
    最近更新 更多