【问题标题】:UINavigationBar title NOT centered horizontallyUINavigationBar 标题未水平居中
【发布时间】:2018-10-10 20:39:38
【问题描述】:
我有一个故事板,上面有一个导航控制器和两个视图控制器,如下所示:
不知何故(出于我想了解的原因)第一个 UIViewController 的 UINavigationBar 中的文本长度影响了第二个视图控制器的 UINavigationBar 中文本的居中。
为什么会发生这种情况以及如何解决?
这是第一个视图控制器中文本长度较短的示例:
我所做的只是将 IB 的 UINavigationItem 中的文本从“Privacy Privacy Privacy”更改为“Privacy”。
为什么会发生这种情况,解决方法是什么?这可以在没有代码的情况下在 IB 中修复吗?
【问题讨论】:
标签:
ios
uinavigationbar
uinavigationitem
uinavigationcontroller
【解决方案1】:
可以通过情节提要,您可以通过为导航项设置后退按钮来实现。检查随附的屏幕截图。
【解决方案2】:
因为在secondViewController 中back 按钮的标题将是firstViewController 的标题。这就是为什么在第二个视图控制器中后退按钮标题变为 Privacy Privacy Privacy 这就是为什么它将主标题推到右侧一点。
您可以通过在您的secondViewController 中写入此代码来停止您的secondViewController 以将backButton 标题设置为上一个屏幕标题。
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.
}