UINavigationBar 标题不水平居中

UINavigationBar title NOT centered horizontally

我有一个故事板,上面有一个导航控制器和两个视图控制器,如下所示:

第一个 UIViewController 的 UINavigationBar 中文本的长度以某种方式(出于我想了解的原因)影响了第二个视图控制器的 UINavigationBar 中文本的居中。 为什么会发生这种情况,如何解决?

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

我所做的只是将 IB 中 UINavigationItem 中的文本从 "Privacy Privacy Privacy" 更改为 "Privacy"。

为什么会发生这种情况,解决方法是什么?可以不用代码在 IB 中解决这个问题吗?

因为在 secondViewControllerback 按钮的标题将是 firstViewController 的标题。这就是为什么在第二个视图控制器中后退按钮标题变成 Privacy Privacy Privacy 这就是为什么它将主标题向右推一点。

您可以停止 secondViewControllerbackButton 标题设置为之前的屏幕标题,方法是在 secondViewController.

中编写此代码
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.
    }

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