【问题标题】:Adding both image and title to a navigation backBarButtonItem将图像和标题都添加到导航 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 上吗?

【问题讨论】:

    标签: ios uinavigationitem custom-view 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
    • 我使用了这个解决方案stackoverflow.com/a/20283490/649379@Vinodh。另外我会尝试隐藏后退按钮:stackoverflow.com/a/21225089/649379
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    相关资源
    最近更新 更多