ios - 带有图像的自定义后退按钮

标签 ios swift uinavigationcontroller uinavigationbar

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

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

最佳答案

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

要更改后退按钮的默认图像,请将以下内容放入您的应用委托(delegate) didFinishLaunchingWithOptions::

swift :

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

objective-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

关于ios - 带有图像的自定义后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26936296/

相关文章:

ios - 当无法找到或尚未创建 Storyboard时,如何防止 SWIFT 4.2 运行时错误?

iphone - 单击另一个单元格时,将UITableViewCell折叠为原始大小

iphone - UINavigationController 和 UITabBarController 中的选择性自动旋转

ios - 在 swift 3.0 中画线

ios - 在单个应用程序中添加并导航到新 View

ios - 导航 Controller 中的后退按钮有什么作用而 pushViewController 没有?

ios - watchOS2 和 iOS8 的困境

ios - 如何在 UISearchBar 中过滤 NSDictonary?

ios - 在 Swift 中为 UIDatePicker 设置文本颜色

ios - 将数据发送到另一个 View Controller