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 setBackgroundImage:[UIImage imageNamed:@"goBack"]
                          forState:UIControlStateNormal];
        [button addTarget:self
                   action:@selector(backTo:)
         forControlEvents:UIControlEventTouchDown];
        button.imageView.contentMode = UIViewContentModeScaleAspectFit;
        [view addSubview:button];

        //中间分割线
        UIView *seprateLine = ({
            UIView *view = [[UIView alloc]initWithFrame:CGRectMake(30, 12, 1, 20)];
            view.backgroundColor = [UIColor colorWithRed:45/255.0 green:45/255.0 blue:45/255.0 alpha:1];
            view;
        });
        [view addSubview:seprateLine];

        //显示返回标题
        UILabel *backLabel = ({
            UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(40, 0, 100, 44)];
            label.textAlignment = NSTextAlignmentLeft;
            label.font = [UIFont systemFontOfSize:14];
            label.textColor = [UIColor blackColor];
            label.text = @"ViewController";
            label;
        });
        [view addSubview:backLabel];

        //把view添加上去
        UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc]
                                          initWithCustomView:view];
        barButtonItem;
    });

Demo代码下载:https://github.com/LuoDaRen/-

时间: 2024-10-22 11:15:39

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

IOS 自定义 滑动返回 手势

/** 只需要在你自定义的导航控制器中,改成如下代码即可,自定义手势返回 */ #define KEY_WINDOW [[UIApplication sharedApplication] keyWindow] #define kScreenW KEY_WINDOW.bounds.size.width #define kAnimateDuration 0.3 #define kDefaultAlapa 0.5 #define kDefaultScale 0.95 #define iOS7 ([UI

iOS自定义的UISwitch按钮

UISwitch开关控件 开关代替了点选框.开关是到目前为止用起来最简单的控件,不过仍然可以作一定程度的定制化. 一.创建 UISwitch* mySwitch = [[ UISwitchalloc]initWithFrame:CGRectMake(200.0,10.0,0.0,0.0)]; 是不是很奇怪,大小竟然是0.0×0.0,没错,系统会自动帮你决定最佳的尺寸,你自己写的尺寸会被忽略掉,你只要定义好相对父视图的位置就好了.默认尺寸为79 * 27. 二.显示控件 [ parrentView

[iOS]统一设置返回按钮为自定义图片的方法

我们可以通过基类设置BackButton的样式,也可以设置LeftButton然后隐藏BackButton,但是那样的话手势返回就没了. 现在找到的方案是:设置返回按钮的背景图片为自定义的图片,为了解决会显示Back字样的问题,设置Title偏移到屏幕不可见的位置即可. 完整代码如下: UIImage *backImage = [UIImage imageNamed:@"backNor"]; [[UIBarButtonItem appearance] setBackButtonBack

自定义NavgationBar返回按钮

iOS  上UINavigationController视图压栈形式,可以在当前视图无限制push许多视图,然而一些会觉得自带的push按钮不够美观,而且当上的上一个页面title很长的时候,那个返回按钮就很长,怎样定义一个自己返回按钮呢?像第三幅图片一样...    需要push的视图里面定义一个事件 [cpp] view plaincopy - (IBAction)pushVC:(id)sender { NavViewController *navVC = (NavViewControlle

uinavigationcontroller返回按钮文字设定

UINavigationController Class Reference: 使用pushViewController切换到下一个视图时,navigation controller按照以下3条顺序更改导航栏的左侧按钮. 1.如果B视图有一个自定义的左侧按钮(leftBarButtonItem),则会显示这个自定义按钮: 2.如果B没有自定义按钮,但是A视图的backBarButtonItem属性有自定义项,则显示这个自定义项: 3.如果前2条都没有,则默认显示一个后退按钮,后退按钮的标题是A视

IOS navigationItem 设置返回按钮,title图片和rightBarButtonItem

1.自定义返回按钮 UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStyleBordered target:nil action:nil]; [self.moreItem setBackgroundImage:[UIImage new] forState:UIControlStateNormal barMetrics:UIBarMetricsDe

ios自定义UINavigationController

1 #import <UIKit/UIKit.h> 2 3 @interface NJNavigationController : UINavigationController 4 5 @end 6 7 8 9 #import "NJNavigationController.h" 10 11 @interface NJNavigationController () 12 13 @end 14 15 @implementation NJNavigationController

iOS 自定义NavigationBar右侧按钮rightBarButtonItem--button

//两个按钮的父类view UIView *rightButtonView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 50)]; //历史浏览按钮 UIButton *historyBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; [rightButtonView addSubview:historyBtn]; [historyBtn setImage

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

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