微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift 5 - navigationItem.title 未显示

如何解决Swift 5 - navigationItem.title 未显示

我的 navigationItem.title 行为很奇怪。

当 viewController 被推入堆栈时,标题没有显示(上图)。然而,当 viewController 被弹出时,标题会在一纳秒左右的时间内可见(见下图)。

enter image description here

enter image description here

这就是我设置标题添加 barButtons 的方式。全部在 viewDidLoad 中。

navigationItem.title = "Mitt konto"
  
let backBtn = UIButton(type: .custom)
let backBtnImage = UIImage(systemName: "chevron.left")
backBtn.setBackgroundImage(backBtnImage,for: .normal)
backBtn.addTarget(self,action: #selector(popViewController),for: .touchUpInside)
backBtn.frame = CGRect(x: 0,y: 0,width: 20,height: 20)

let backBtnView = UIView(frame: CGRect(x: 0,width: 30,height: 30))
backBtnView.bounds = view.bounds.offsetBy(dx: 0,dy: -10)
backBtnView.addSubview(backBtn)
let backButton = UIBarButtonItem(customView: backBtnView)
navigationItem.leftBarButtonItem = backButton
    
let signOutimage = UIImage(named: "signout_item")?.withTintColor(.white)
let button = UIButton(frame: CGRect(x: 0,height: 20))
button.setBackgroundImage(signOutimage,for: .normal)
button.addTarget(self,action: #selector(signoutButtonpressed(_:)),for: .touchUpInside)
navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button)

更新 我的视图层次结构是 NavigationController -> AnotherViewController -> ThisViewController

我的错误在哪里?隐藏标题是什么?

解决方法

我不确定您的视图控制器的层次结构,但您可以设置如下所示的标题,

override func viewDidLoad() { 
super.viewDidLoad()
 /* If view controller is a direct child of UINavigationController */
 self.title = "Title Here" 
/* If view controller's parent is a direct child of UINavigationController e.g. a child of embedded tab view controller */
 self.parent?.title = "Title Here" 
}
,

好的,所以问题是我的 backBtnView - 尽管将其框架设置为宽度 = 30 - 覆盖了标题。

我通过给视图一个黑色背景色发现了这一点。结果发现视野比 30 宽得多。

backBtnView.frame.size.width = 30

初始化后修复了问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?