码迷,mamicode.com
首页 > 移动开发 > 详细

iOS7+自定义返回按钮

时间:2015-04-22 18:53:51      阅读:391      评论:0      收藏:0      [点我收藏+]

标签:

本来我是用创建UIButton赋值给self.navigationItem.leftBarButtonItem的方式设置返回按钮的,用了觉得挺正常,结果看了@蛙牛的文章《Java转iOS-第一个项目总结(2)》后,发现一个重大问题:手势返回功能没了,原因就是用设置leftBarButtonItem的方式来自定义返回按钮会导致手势返回功能失效。

如果不自定义返回按钮,又因为我使用的是RDVTabBarController,需要在返回方法里手动设置hide tabbar属性,这样我就需要拦截返回手势的触发方法,想起来头都大了。

摸索了半天,找到了一个简单自定义返回按钮并且保留手势返回功能的方法,优化一下hide tabbar的方式就可以不用拦截了。在BaseViewController中定义一个isShowTabBar,默认为NO,在一级页面的init或者initWithNibName方法中设置isShowTabBar=YES,其它的ViewController不用动,BaseViewController重写下面的方法:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    if (self.rdv_tabBarController.isTabBarHidden == isShowTabbar) {
        [self.rdv_tabBarController setTabBarHidden:!isShowTabbar];
    }
}

自定义不带文字的返回按钮代码如下:(代码来自于自定义iOS7导航栏背景,标题和返回按钮文字颜色

//自定义返回按钮  
UIImage *backButtonImage = [[UIImage imageNamed:@"fanhui.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 30, 0, 0)];  
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];  
//将返回按钮的文字position设置不在屏幕上显示  
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(NSIntegerMin, NSIntegerMin) forBarMetrics:UIBarMetricsDefault];

显示效果如下:

技术分享



iOS7+自定义返回按钮

标签:

原文地址:http://my.oschina.net/ioslighter/blog/405118

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!