将图像和标题都添加到导航 backBarButtonItem
Posted
技术标签:
【中文标题】将图像和标题都添加到导航 backBarButtonItem【英文标题】:Adding both image and title to a navigation backBarButtonItem 【发布时间】:2013-04-05 14:24:28 【问题描述】:我正在尝试向导航控制器的后退按钮添加一个图标(并保留标题)。似乎如果我设置 UIBarButtonItem 的图像它会隐藏标题,所以我想我会尝试自定义视图。我试过了
UIButton* customButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[customButton setImage:[UIImage imageNamed:@"icon"] forState:UIControlStateNormal];
[customButton setTitle:@"Title" forState:UIControlStateNormal];
[customButton setAdjustsImageWhenHighlighted:YES];
[customButton setFrame:CGRectMake(0, 0, 125, 32)];
UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithCustomView:customButton];
self.navigationItem.backBarButtonItem = backButton;
但是 Apple 文档说 backBarButtonItem 忽略了自定义视图,所以这不起作用。
我也试过这个:
self.navigationItem.leftBarButtonItem = backButton;
self.navigationItem.hidesBackButton = YES;
但 leftBarButtonItem 过早显示一个屏幕,而 hidesBackButton 似乎没有隐藏 backBarButtonItem。
还有其他方法可以将图像和标题都放到导航 backBarButtonItem 上吗?
【问题讨论】:
【参考方案1】:首先隐藏UINavigationController
提供的后退按钮,使用代码self.navigationItem.hidesBackButton = YES;
并使用以下代码设置带有图像和标题的自己的按钮
UIButton* customButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[customButton setImage:[UIImage imageNamed:@"icon"] forState:UIControlStateNormal];
[customButton setTitle:@"Title" forState:UIControlStateNormal];
[customButton setAdjustsImageWhenHighlighted:YES];
[customButton setFrame:CGRectMake(0, 0, 125, 32)];
UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithCustomView:customButton];
self.navigationItem.backBarButtonItem = backButton;
【讨论】:
> ios7: "在配置你的 bar button item 时,不要给它分配自定义视图;导航项无论如何都会忽略后栏按钮中的自定义视图" 那么我如何将自己的图像添加为后退按钮? @SoftDesigner 我使用了这个解决方案***.com/a/20283490/649379@Vinodh。另外我会尝试隐藏后退按钮:***.com/a/21225089/649379以上是关于将图像和标题都添加到导航 backBarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章