iOS 7 NavigationBar 后退按钮自定义图像没有标签

Posted

技术标签:

【中文标题】iOS 7 NavigationBar 后退按钮自定义图像没有标签【英文标题】:iOS 7 NavigationBar Back Button Custom Image with no Label 【发布时间】:2014-01-29 14:36:28 【问题描述】:

我正在尝试在导航栏上创建自定义后退按钮。我从以下开始:

// Nav bar - back button
[[UINavigationBar appearance] setTintColor:COLOR_WHITE];
[[UINavigationBar appearance] setBackIndicatorImage:[[UIImage imageNamed:@"navMenuBackButton"]
                                                     imageWithAlignmentRectInsets:UIEdgeInsetsMake(6.0, -6.0, 6.0, -6.0)]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"navMenuBackButton"]];

图像为 34x34 点,因此在没有图像对齐的情况下无法正确居中。当前的问题是试图摆脱“Back”标签而不为每个屏幕设置空白标题或对 ViewController 本身进行任何更改。

有什么想法吗?谢谢

【问题讨论】:

真正大声思考:如何继承 UINavigationBar 然后使用UINavigationController - (instancetype)initWithNavigationBarClass:(Class)navigationBarClass toolbarClass:(Class)toolbarClass 【参考方案1】:

禁用 leftBarButtonItem 和 rightBarButtonItem。请尝试以下操作。

[navigationItem.backItem.leftBarButtonItem setEnabled:NO];
[navigationItem.backItem.rightBarButtonItem setEnabled:NO];
[navigationItem.backItem setHidesBackButton:YES];

【讨论】:

【参考方案2】:

你试过了吗:

NSString *backString = @"";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:backString 
                                                               style:UIBarButtonItemStyleDone 
                                                              target:nil 
                                                              action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];

【讨论】:

是的。它的工作原理与self.navigationItem.title = @""; 相同,但需要为我想尝试避免的每个视图控制器调用它

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

ios7上看不到后退按钮

自定义 NavigationBar 按钮在 iOS 7 中看起来不同

如何在iOS中调整后退按钮的y轴

iOS 7 UINavigationBar 隐藏了后退按钮

iOS - 导航栏后退按钮颜色柔和

导航栏中的 Swift 自定义后退按钮