iOS11适配 : iOS适配工作
需求
如果要只保留返回按钮的文字,不需要"返回"文字
iOS11之前
在全局函数执行的地方使用一下代码:
let barButton = UIBarButtonItme.appearance
barButton.setBackButtonTitlePositionAdjustment( UIOffset(horizontal:0 , vertical: -70), for: .default) //通过设置返回文字的垂直偏移隐藏
iOS11之后
1.每次push之前都设置
我的解决办法为,在push的父页面将title设为空
例如:
self.title = ""
self.navigationController?.pushViewController(workDetail, animated: true)
这样的话就需要在viewWillAppear方法中每次都设置控制器的title,不然就会导致返回这个页面的时候title不见的。
综合的解决办法,手动添加一个只含返回图标的button,然后在push到目的页面的时候添加。
缺点:不好全局控制,太麻烦了。
2.设置返回按钮的背景图片
let barButton = UIBarButtonItem.appearance()
barButton.setBackButtonBackgroundImage(UIImage(named:"tab_backButton_background"), for: .normal, barMetrics: .default) //tab_backButton_background 图片为导航栏背景色图片
注意:使用这种方式的时候需要保证所有导航栏的背景色是一致的,否则就需要单独设置。
设置了返回按钮的背景图片就会使文字消失掉,具体原因未知。
3.还是使用设置标题位置的方式(推荐)
UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(-100, 0), for:UIBarMetrics.default)
//iOS 11及之前版本通用
感谢
LLLKKK319的提醒。