项目中使用了全局设置的方式给导航设置了默认返回的图片,代码如下
UINavigationBar.appearance().setBackgroundImage(UIImage.imageWithColor(UIColor.white), for: .default)
UINavigationBar.appearance().backIndicatorImage = backImage
这时候利用 UINavigationController push到下一个页面时,导航上默认带有设置的返回icon 和 文字(上一个页面的title)。使用这个方法可以隐藏掉默认的文字:
UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -60), for: .default)
但是由于ViewController的父VC也是带有title的这就导致了当前显示的vc title 布局中的问题。即子页面标题和返回按钮依然有父页面标题的长度。
可以使用下面的这种方法:
if self.navigationController != nil {
let backItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
self.navigationItem.backBarButtonItem = backItem
}
在父VC中添加如下代码即可避免上面的那个问题。
注:使用的是swfit代码,OC代码还需自己查找。
网友评论