【问题标题】:Back button in navigation controller wont change to custom image导航控制器中的后退按钮不会更改为自定义图像
【发布时间】:2020-05-31 21:17:43
【问题描述】:

我有两个 VC,其中第一个嵌入在一个 NC 中。我的第二个 VC 是使用我的第一个 VC 的 push segue 呈现的。在我的第二个 VC 中,我试图将后退按钮更改为我拥有的自定义图像,但它仍然使用导航栏中的默认图像和文本。

viewDidLoad() 在我的第二个 VC 中:

override func viewDidLoad() {
    super.viewDidLoad()

    let back = UIImage(named: "back")
    self.navigationController!.navigationBar.backIndicatorImage = back
    self.navigationController!.navigationBar.backIndicatorTransitionMaskImage = back
    self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.plain, target: nil, action: nil)

    configureView()
}

为什么以下内容没有改变我的第二个 VC 中的后退按钮?

【问题讨论】:

  • 将其移至 viewWillAppear 或 DidAppear
  • @MichaelVorontsov 这些都不起作用

标签: ios swift uinavigationcontroller


【解决方案1】:

罪魁祸首是设置backButtonItem 的行,用新的后退按钮替换了您对后退按钮所做的任何事情。只需删除:

self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.plain, target: nil, action: nil)

【讨论】:

  • 我在这里肯定做错了什么,因为这似乎也没有改变任何东西。
  • @Brejuro,作为调试步骤,在一个全新的项目中执行此操作。从一个 VC 推送到另一个,在第二个中包含此代码。它适用于我的系统(当我包含您创建按钮的额外行时无法正常工作)。
【解决方案2】:

不要将标题设置为"",如果您不需要标题,请将标题设置为nil。无法评论,没有足够的声誉,对不起。从文档中查看:

“项目的标题。如果为 nil,则不显示标题。”

【讨论】:

    【解决方案3】:

    你需要在第一个视图控制器上设置它。

    在您的第一个视图控制器上调用以下代码。

    override func viewDidLoad() {
        super.viewDidLoad()
    
        let back = UIImage(named: "back")
        self.navigationController!.navigationBar.backIndicatorImage = back
        self.navigationController!.navigationBar.backIndicatorTransitionMaskImage = back
        self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.plain, target: nil, action: nil)
    
        configureView()
    }
    

    更多细节 https://sarunw.com/posts/how-to-change-back-button-image/ https://sarunw.com/posts/how-to-remove-text-from-uinavigationbar-back-button/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 2012-01-01
      • 2011-11-29
      • 1970-01-01
      相关资源
      最近更新 更多