本文转载请联系网路开发公众号.方案1自定义UINavigationController遵守```协议实现如下方法:#pragmamark----------UINavigationBarDelegate-(BOOL)navigationBar:(UINavigationBar*)navigationBarshouldPushItem:(UINavigationItem*)item{//设置导航栏返回按钮文字UIBarButtonItem*back=[[UIBarButtonItemalloc]initWithTitle:nilstyle:UIBarButtonItemStylePlaintarget:nilaction:nil];/*NSMutableDictionary*textAttrs=[NSMutableDictionarydictionary];textAttrs[UITextAttributeTextColor]=[UIColorwhiteAttributeTextColor];[backsetTitlesStateforStates]:UIControlStateNormal];*/item.backBarButtonItem=back;returnYES;}注意:该方法在部分子控制器页面返回按钮的文字会有bug。需要像上面那样在子控制器页面的父控制器中再次设置返回按钮,使子控制器成为页面的父控制器#pragmamark--------生命周期函数-(void)viewDidLoad{[superviewDidLoad];//Doanyadditionalsetupafterloadingtheview.self.view.backgroundColor=[UIColorwhiteColor];//重置下子页面导航栏后退按钮文字UIBarButtonItem*item=[[UIBarButtonItemalloc]initWithTitle:nilstyle:UIBarButtonItemStylePlaintarget:nilaction:nil];self.navigationItem.backBarButtonItem=item;}方案二自定义UINavigationController遵守协议,实现了以下方法:#pragmamark----------UINavigationBarDelegate-(BOOL)navigationBar:(UINavigationBar*)navigationBarshouldPushItem:(UINavigationItem*)item{//设置导航栏的文字返回按钮透明,可能是导航标题不居中的问题:UIESControlStateNormal];(推荐)在UIViewController中添加一个category(这里的category不需要导入,可以直接使用)然后在load方法中将ViewDidAppear方法替换为MethodSwzilling方法。代码如下:#pragmamark----------UINavigationBarDelegate-(BOOL)navigationBar:(UINavigationBar*)navigationBarshouldPushItem:(UINavigationItem*)item{//设置导航栏后退按钮的文字为透明,可能会导致导航标题不居中的问题@{NSForegroundColorAttributeName:[UIColorclearColor]}forState:UIControlStateHighlighted];returnYES;}
