iOS16系统 设置navigationbar上面的title有可能无效的bug处理
在某些业务情况下,有可能需要对viewcontroller的title进行动态设置
如果正常情况下,在vc viewdidload的方法中设置title,是没有问题的.如这样:
但一旦在vc已初始化显示完成的情况下,title还是空的时候 再去设置title,这时候标题是不会显示出来
像这样:
问题在于 iOS16系统下,把title置空的时候,会把titlelabel的alpha设为0了,变透明了...但重新设置title的话 却不会自动把alpha设回1(在之前的系统都没有这个问题)
解决这个问题的方法:
在setTitle之后 让navigationBar做一次setNeedsLayout
@objc func setTitleAction(sender : Any?) { self.title = "啦啦啦啦" self.navigationController?.navigationBar.setNeedsLayout() }
当然也比较建议在vc的base class去rewrite setTitle 来达到全局解决的效果
这个问题目前发现只要是使用了系统的UINavigationBar就会出现