【问题标题】:Pressing Right Bar Button Item Moves Left Bar Button Items按下右栏按钮项目移动左栏按钮项目
【发布时间】:2014-02-21 02:54:45
【问题描述】:

我的网络视图导航栏上有三个左栏按钮项。一个返回到我的应用程序菜单以及后退和前进按钮的菜单。我有一个打开活动视图控制器的右栏按钮。当我按下右键时,左侧的前进和后退按钮会向下移动并离开导航栏。

- (void)viewDidLoad
{   
    leftBarButtonItems = [NSArray arrayWithObjects:@"Menu", @"Back", @"Forward", nil];

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    NSString *urlAddress = @"http://www.littleheartrecords.com/releases.html";
    NSURL *url = [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];

    UIBarButtonItem *systemAction = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(showMenu)];
    self.navigationItem.rightBarButtonItem = systemAction;

    UIBarButtonItem *openItem = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStylePlain target:self action:@selector(openButtonPressed)];
    self.navigationItem.leftBarButtonItem = openItem;

    UIImage *back = [UIImage imageNamed:@"back_arrow"];
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc]initWithTitle:@"" style: UIBarButtonItemStylePlain target:self action:@selector(GoBack)];
    [backButton setImage:back];

    UIImage *forward = [UIImage imageNamed:@"forward_arrow"];
    UIBarButtonItem *forwardButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:self action:@selector(GoForward)];
    [forwardButton setImage:forward];

    self.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:openItem, backButton, forwardButton, nil];
}

【问题讨论】:

  • “setImage:”记录在哪里? UIBarButtons 有一个“setBackgroundImage:forState:barMetrics:”。
  • 如果您使用“setBackgroundImage:forState:barMetrics:”设置背景图像,图像会出现在导航栏下方开始吗?我在 iOS 6 上得到了不同的结果,你试过看看会发生什么吗?
  • 使用 setBackgroundImage: 使图像看起来不正确,它们从导航栏下方开始。

标签: ios objective-c uibarbuttonitem


【解决方案1】:

奇怪的是,对我有用的是将带有图像的按钮的标题设置为一个空格:

barButtonItem.title = @" ";
barButtonItem.image = [UIImage imageNamed:@"MenuIcon.png"];

【讨论】: