首页 > 其他分享 >iOS16系统 设置navigationbar上面的title有可能无效的bug处理

iOS16系统 设置navigationbar上面的title有可能无效的bug处理

时间:2022-09-22 09:34:26浏览次数:59  
标签:vc iOS16 setTitle title 系统 设置 navigationbar

在某些业务情况下,有可能需要对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就会出现

 

标签:vc,iOS16,setTitle,title,系统,设置,navigationbar
From: https://www.cnblogs.com/n1ckyxu/p/16718019.html

相关文章