自定义NavgationBar返回按钮

iOS  上UINavigationController视图压栈形式,可以在当前视图无限制push许多视图,然而一些会觉得自带的push按钮不够美观,而且当上的上一个页面title很长的时候,那个返回按钮就很长,怎样定义一个自己返回按钮呢?像第三幅图片一样。。。

  

需要push的视图里面定义一个事件

[cpp] view plaincopy

  1. - (IBAction)pushVC:(id)sender {
  2. NavViewController *navVC = (NavViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"NavViewController"];
  3. navVC.title = NSLocalizedString(@"设置", nil);
  4. [self.navigationController pushViewController:navVC animated:YES];
  5. }

替换返回按钮,定义自定义按钮

[cpp] view plaincopy

  1. - (void)viewDidLoad
  2. {
  3. [super viewDidLoad];
  4. UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  5. backBtn.frame = CGRectMake(0, 0, 44, 44);
  6. [backBtn setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
  7. [backBtn addTarget:self action:@selector(doBack:) forControlEvents:UIControlEventTouchUpInside];
  8. UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn];
  9. self.navigationItem.leftBarButtonItem = backItem;
  10. // Do any additional setup after loading the view.
  11. }
  12. -(void)doBack:(id)sender
  13. {
  14. [self.navigationController popViewControllerAnimated:YES];
  15. }

源码下载地址:https://github.com/XFZLDXF/XFNavBarBtn

原创博客欢迎转载分享,请注明出处http://blog.csdn.net/duxinfeng2010

时间: 2024-11-10 00:54:19

自定义NavgationBar返回按钮的相关文章

iOS 自定义UINavigationController返回按钮

主要代码如下: //自定义导航栏返回按钮 self.navigationItem.leftBarButtonItem = ({ //导航栏返回背景视图 UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 160, 44)]; //返回按钮 UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 12, 20, 20)]; [button setBackg

iOS手势(滑动)返回的实现(自定义返回按钮)

如果各位使用的是storyboard布局的话,且用的是系统的返回按钮,那么是自动会有滑动返回效果的,但是相信各位做项目的,一般都是用的自定义的返回按钮,所以我贴几行代码,看看怎么实现系统自带的滑动返回的.首先,建立一个自定义的返回按钮,然后加上去 [self.navigationItem setLeftBarButtonItem:backBarItem]; 然后 - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear

iOS_自定义返回按钮

//在-(void)viewWillAppear:(BOOL)animated方法中添加返回按钮 //返回按钮 UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom]; leftButton.frame=CGRectMake(0, 0, 60, 25); [leftButton setImage:[UIImage imageNamed:@"back_img"] forState:UIControlState

ios开发之自定义默认生成的导航栏 标题 颜色 返回按钮

一 修改导航栏颜色    导航栏在哪个页面代码放在那里面 self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:(21.0/255.0) green:(153.0 / 255.0) blue:(224.0 / 255.0) alpha:1];                                                   //定义导航栏颜色 self.navigationItem.t

IOS 改变Navigation的返回按钮

两个办法: 1, 手动为每一个UIViewController添加navigationItem的leftButton的设置代码 2,为UINavigationController实现delegate,在pop和push的时候改变当前和上一页的navigationItem.title 以下是封装的一些基础方法,供参考: + (void) navigationItem:(UINavigationItem*)navigationItem setTitle:(NSString*)title; + (vo

定义的返回按钮 Push到下一个页面后 手势返回无效解决办法

转自:http://zhangmingwei.iteye.com/blog/2080457 从iOS7的Beta版开始,就着手做兼容工作,到Beta4的時候,应用已经基本兼容,只是偶然发现,iOS样式的手势返回,也就是用interactivePopGestureRecognizer返回的时候,出现下面一些列问题.各方调研,无果,史无前例(废话,刚出来的7,上哪有例去--#). A,我的应用是自定义的返回按钮图标(默认返回按钮样式不会出现问题3),为了保险,写了这句代码[self.navigati

iOS 更改navigationcontroller pop出来的视图返回按钮

在navigation controller的情况下,pop一个视图出来之后,返回键默认是一个返回箭头和源视图的题目.如果没有题目,就是一个英文的back.那如果要修改这个返回按钮的话应该怎么做呢? 首先拖一个bar button item到左上方.这样子就替代了默认的按钮了.此时还不会有响应.此时需要添加响应代码. [[self navigationController] popViewControllerAnimated:YES]; 这样子就搞定了.这样子的话可以实现自定义的返回按钮. 另附

如何设置自定义导航控制器全局返回按钮 --- ios

怎么样可以一次性把导航控制器中的返回键全都自定义. 思路: 我们可以在push的时候来设置这个自定义按钮,push有一个方法 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{} 在这个方法中viewController是push的对象 但是要判断这个viewController是不是根控制器 - (void)pushViewController:(UIViewControl

ios 设置所有 导航控制器 的返回按钮 自定义导航按钮

应用场景: 1.当导航控制器push很多次,每个自控制器都需要自定义返回按钮,很麻烦 2.当进入二级界面以后,需要隐藏底部的tabbar 3.一次性设置顶部导航条的颜色 解决方法: 自定义导航控制器,重写push(跳到下一个控制器) 和 pop(返回上一个控制器) 方法 代码: #import "SGNavigationController.h" @interface SGNavigationController () @end @implementation SGNavigation