2014-11-14 129 views
0

我想要做的是改变后退按钮的高度。但是,据我所知,唯一的选择是宽度。所以,我想我会用我自己的小图像创建一个自定义后退按钮。现在我已经做到这一点使用viewDidLoad方法与下面的代码:图像自定义后退按钮

//Setup navigation bar 
     navigationController?.navigationItem.backBarButtonItem = UIBarButtonItem(image:UIImage(named:"back_arrow.png"), style:UIBarButtonItemStyle.Plain, target:nil, action:nil) 
     navigationController?.navigationItem.backBarButtonItem!.title = "" 

但是,后退按钮呈蓝色,大,并有标题“后退”。我怎样才能让这段代码正常工作?调试器说它正在运行,但它没有改变任何东西。

回答

3

对于颜色,您必须在navBar上设置色调颜色,也可以将navigationItem.backBarButtonItem设置为nil,并使用leftbarButtonItem和自定义按钮图像。

+0

然后我失去了股票backBarButton回功能。我只是想改变后栏按钮的图像,摆脱标题,并保留后面的功能。 – steventnorris 2014-11-14 21:52:14

+0

是的,但你可以在左边的按钮处理程序中做到这一点[self.navigationController popToRootViewController] – Puran 2014-11-15 02:36:19

5

我将向您展示如何在整个应用程序中执行此操作,而不仅仅是一个页面。

要改变后退按钮的默认图片,把你的应用程序代理didFinishLaunchingWithOptions:如下:

斯威夫特:

let backArrowImage = UIImage(named: "customImage") 
let renderedImage = backArrowImage?.imageWithRenderingMode(.AlwaysOriginal) 
UINavigationBar.appearance().backIndicatorImage = renderedImage 
UINavigationBar.appearance().backIndicatorTransitionMaskImage = renderedImage 

的OBJ-C:”

UIImage *backArrowImage = [UIImage imageNamed:@"customImage"]; 
UIImage *renderedImage = [backArrowImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
[UINavigationBar appearance].backIndicatorImage = renderedImage; 
[UINavigationBar appearance].backIndicatorTransitionMaskImage = renderedImage; 

要从按钮中删除“返回”文本,请将此类别添加到您的AppDelegate.m文件(o [R你自己的类别)

不知道如何做到这一点的斯威夫特还没有,所以这里的对象 - 版本:

@implementation UINavigationItem (LuxeCustomization) 

/** 
Removes text from all default back buttons so only the arrow or custom image shows up 
*/ 
-(UIBarButtonItem *)backBarButtonItem 
{ 
    return [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil]; 
} 

@end 
+0

在swift中全局删除“返回”按钮标题...请参阅http://stackoverflow.com/a/33707584/6059628 – 2016-05-14 09:15:35