带图像的自定义后退按钮

Posted

技术标签:

【中文标题】带图像的自定义后退按钮【英文标题】:Custom Back Button With Image 【发布时间】:2014-11-14 18:09:49 【问题描述】:

我想做的是改变后退按钮的高度。但是,据我了解,唯一可以更改的选项是宽度。所以,我想我会用我自己的、更小的图像创建一个自定义的后退按钮。现在我使用 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 = ""

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

【问题讨论】:

【参考方案1】:

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

要更改后退按钮的默认图像,请将以下内容放入您的应用委托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 文件(或您自己的类别)中

还不知道如何在 Swift 中做到这一点,所以这里是 Obj-c 版本:

@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

【讨论】:

在 swift 中全局删除“返回”按钮标题...见***.com/a/33707584/6059628【参考方案2】:

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

【讨论】:

然后我失去了 backBarButton 的库存返回功能。我只是想改变返回栏按钮的图像,去掉标题,保留返回功能。 是的,但无论如何您都可以在左侧栏按钮处理程序 [self.navigationController popToRootViewController] 中执行此操作

以上是关于带图像的自定义后退按钮的主要内容,如果未能解决你的问题,请参考以下文章

导航栏上的自定义后退按钮不起作用

带有自定义后退导航按钮的自定义按钮栏

iPhone - 如何使用我的纹理背景自定义 UINavigationBar 后退按钮

使用LeftBarButtonItems ios中的自定义按钮创建默认后退按钮

导航栏控制器中的自定义后退按钮

按下后退按钮时的自定义动画 - iOS