让navigationItem.leftBarButtonItem具有backBarButtonItem的外观样式

需求是:点击返回按钮,自动保存设定,然后返回前一个画面,返回按钮必须使用带左箭头的那种,用过iOS的都懂的。

我一开始用的是iOS默认的backBarButtonItem, 但是发现它不能接收事件(Action),即便我设置了target以及Action也完全不起作用。 用leftBarButtonItem吧,倒是可以接收事件了,但是样式无法成为返回按钮那种箭头样子。

苦恼, 最后多次尝试,网上也翻了N遍终于找到了一种方法: 
不需要额外制作图片,代码如下:

Objc代码

  1. UIButton *backButton = [UIButton buttonWithType:101];
  2. [backButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
  3. [backButton setTitle:cancelText forState:UIControlStateNormal];
  4. UIBarButtonItem *backItem = [[[UIBarButtonItem alloc] initWithCustomView:backButton] autorelease];
  5. self.navigationItem.leftBarButtonItem = backItem;
时间: 2024-08-06 11:47:00

让navigationItem.leftBarButtonItem具有backBarButtonItem的外观样式的相关文章

NavigationItem.leftBarButtonItem 返回事件捕获

NavigationItem.leftBarButtonItem 返回事件捕获 这个事件的捕获,在网上找了好久也没找到合适的方法,最后想了一些替代方法,供有需要的朋友借鉴. 1.把重新生成一个返回按钮,自己定义响应事件. UIImage *image=[UIImage imageNamed:@"ReturnHome_Dark"]; UIBarButtonItem* backButton=[[UIBarButtonItem alloc] initWithImage:image lands

【转】自定义iOS的Back按钮(backBarButtonItem)和pop交互手势(interactivepopgesturerecognizer) --- 不错

原文网址:http://blog.csdn.net/joonsheng/article/details/41362499 序 说到自定义UINavigetionController的返回按钮,iOS7以后,多了一个“<” 这样的返回图标,而目前主流的应用,都是只保留了“<”,而去掉了文字,那么怎么样自定义一个自己的“<"按钮,或者用系统的“<”,但不要文字呢? 1.设置中的返回按钮(带文字) 2.音乐中播放时(不带文字) 1.直接上答案 [objc] view plain

关于backBarButtonItem的N种方法

今天在做项目的时候遇到一点小问题,后来自己解决了,也顺便思考了一下更深层次的东西,在这里分享一下~~ 替换返回按钮的文字 很多app的要求所有的返回按钮的title都是“返回”,如果上一层题目文字太多,下一层的返回按钮文字就会显示不完全,而且这样可以使软件显得整洁. 方法一: 最普通的想法,A界面的navigationItem.backBarButtonItem修改的是B(A的下一级)界面的返回按钮,所以可以写一个BaseViewController,让所有的UIViewController继承

iOS 修改backBarButtonItem 中的titile 字段

需求如下:A 页面 push 到 B 页面.    B 页面中有个返回按钮 不显示A 中的title,而显示 "<返回" ,当然系统的样式还是默认的系统样式.(考虑都是navitation 导航下进行的) 方案一) 我第一想到的思路是: 在B页面中将backItem 隐藏,然后自定义一个按钮 1.  [self.navigationItem setHidesBackButton:YES] 2.    UIBarButtonItem *backItem = [[UIBarButto

自定义了leftBarbuttonItem左滑返回手势失效了怎么办?

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:img style:UIBarButtonItemStylePlain target:self action:@selector(onBack:)]; self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDele

【iOS开发-22】navigationBar导航条和navigationItem设置:基本搞定导航条上的文字和按钮以及各种跳转

(1)navigationBar导航条可以看做是self.navigationController导航控制器的一个属性,可以直接用点来表示self.navigationController.navigationBar,当然navigationBar自己还有很多属性,比如样式barStyle.背景backgroundColor.frame属性(可以获取宽高这些信息),还可以用setBackgroundImage方法设置背景图片,当然图片多了可以使用clipsToBounds剪裁. (2)但,nav

NavigationItem常见属性及方法

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColor whiteColor]; //设置标题文字 self.title = @"页面一"; self.navigationItem.title = @"页面一"; //back 为默认标题文字,默认文字不显示 //

【iOS开发-22】navigationBar导航栏,navigationItem建立:获取导航栏中的基本文本和button以及各种跳跃

(1)navigationBar导航栏可以被看作是self.navigationController一个属性导航控制器,它可以由点直接表示self.navigationController.navigationBar.当然navigationBar他还是很物业.让我们风格barStyle.背景backgroundColor.frame属性(能够获取宽高这些信息).还能够用setBackgroundImage方法设置背景图片.当然图片多了能够使用clipsToBounds剪裁. (2)但.navi

navigationItem标题以及左右button的创建...

创建TableView的navigationItem的Text  左右Button - (void)customizeNavigationBarContent{    //titleView    UILabel *labelTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 40)];    labelTitle.text = @"添加联系人";    labelTitle.textColor = [UIColor