第一種 UIImage *backButtonImage = [[UIImage imageNamed:@"back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 25, 0, 0)]; [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(NSIntegerMin, NSIntegerMin) forBarMetrics:UIBarMetricsDefault]; 提示:上面這種方法會被系統給拉伸,需要在當前控制器里面設置 第二種 UIBarButtonItem *backItem = [[UIBarButtonItem alloc] init]; backItem.title = @""; //主要是以下兩個圖片設置 self.navigationController.navigationBar.backIndicatorImage = [UIImage imageNamed:@"backPic"]; self.navigationController.navigationBar.backIndicatorTransitionMaskImage = [UIImage imageNamed:@"backPic"]; self.navigationItem.backBarButtonItem = backItem; 提示: 這種方法在父類方法中設置好使 -以上兩種方法都是在不改變系統手勢滑動返回的情況下的 第三種 //創建一個UIButton UIButton *backButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)]; //設置UIButton的圖像 [backButton setImage:[UIImage imageNamed:@"left_select_img.png"] forState:UIControlStateNormal]; //給UIButton綁定一個方法,在這個方法中進行popViewControllerAnimated [backButton addTarget:self action:@selector(backItemClick) forControlEvents:UIControlEventTouchUpInside]; //然后通過系統給的自定義BarButtonItem的方法創建BarButtonItem UIBarButtonItem *backItem = [[UIBarButtonItem alloc]initWithCustomView:backButton]; //覆蓋返回按鍵 self.navigationItem.leftBarButtonItem = backItem; 提示:這種方法會失去手勢滑動返回的功能 第四種 //重新創建一個barButtonItem UIBarButtonItem *backItem = [[UIBarButtonItem alloc]initWithTitle:@"你想要設置的返回按鈕文字" style:UIBarButtonItemStylePlain target:nil action:nil]; //設置backBarButtonItem即可 self.navigationItem.backBarButtonItem = backItem;
提示:上面這種方式只是在父類那里加,修改返回文字而已 至於返回圖標還是系統提供的 手勢滑動返回依然存在 作者:七里田間的守望者 鏈接:http://www.jianshu.com/p/0103cd689cfa 來源:簡書
https://www.2cto.com/kf/201706/648999.html
https://blog.csdn.net/u011096206/article/details/50606778 這篇寫的極好