UINavigationBar标题不水平居中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UINavigationBar标题不水平居中相关的知识,希望对你有一定的参考价值。

我有一个故事板,导航控制器和两个视图控制器堆叠在它上面:enter image description here

不知怎的(并且由于我想理解的原因)第一个UIViewController的UINavigationBar中文本的长度正在影响第二个View Controller的UINavigationBar中文本的居中。为什么会发生这种情况以及如何解决?

以下是第一个视图控制器中文本长度较短的示例:

enter image description here

我所做的只是将文本从“隐私隐私隐私”更改为IB中的UINavigationItem中的“隐私”。

为什么会发生这种情况?解决方法是什么?这可以在没有代码的IB中修复吗?

答案

通过故事板,您可以通过设置导航项的后退按钮来实现。查看附带的屏幕截图。

Screenshot

另一答案

因为在secondViewControllerback按钮的标题将是firstViewController的标题。这就是为什么在第二视图控制器中后退按钮标题成为隐私隐私隐私,这就是为什么它推动主要标题有点右侧。

您可以通过在secondViewController中编写此代码来阻止您的backButtonsecondViewController标题设置为之前的屏幕标题。

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "back", style: .plain, target: self, action: #selector(didTapBackButton))

    }
    @objc func didTapBackButton() {
        //Do what ever you want to do when tap on back button of UINavigationBar here.
    }

以上是关于UINavigationBar标题不水平居中的主要内容,如果未能解决你的问题,请参考以下文章

如何设置navigationItem.titleView 图片水平居中?

在iPad上的UINavigationBar横向居中徽标

UINavigationBar 强制标题视图在后面居中

文本对齐:居中和对齐项目:居中不水平工作

CSS:如何使水平列表居中?显示:内联不工作

Swift,约束,视图层次结构没有为约束做好准备