如何更换/自定义故事板navigationcontroller中的button图像

我想用自定义图像replace后退button中的文本。 我怎样才能做到这一点在迅速代码? 我不想replace整个backbarbutton,因为我想保持回到最后一个视图的默认行为行为。 我还想根据返回目的地(基于storyboardId)的位置做一个switch语句,以便我可以根据视图显示不同的图像。

这取代了图像,但它抹去了默认的后退button的行为,我需要区分什么是返回目的地,以便我可以显示右后方图像。

self.navigationItem.leftBarButtonItem = UIBarButtonItem(image:StyleKit.imageOfMap, style:.Plain, target:self, action:nil); 

尝试更改您的leftBarButtonItem

 self.navigationItem.leftBarButtonItem = UIBarButtonItem(image:StyleKit.imageOfMap, style:.Plain, target:self, action:nil); 

backBarButtonItem

 self.navigationItem.backBarButtonItem = UIBarButtonItem(image:StyleKit.imageOfMap, style:.Plain, target:self, action:nil); 

为了利用backBarButtonItem的默认动作。

把这行代码放在视图控制器之前 ,你想要自定义后退button出现在那里。

编辑 :如果你不想让“<”符号出现在你的button上,你将不得不使用一个leftBarButtonItem然后closures视图控制器在一个单独的方法,例如:

  self.navigationItem.leftBarButtonItem = UIBarButtonItem(image:StyleKit.imageOfMap, style:.Plain, target:self, action:"backButtonPressed:"); } func backButtonPressed(sender:UIButton) { navigationController?.popViewControllerAnimated(true) } 

你在找这样的东西吗?

 btn = [UIButton buttonWithType:UIButtonTypeCustom]; [btn setImage:[UIImage imageNamed:@"YOURIMAGE.png"] forState:UIControlStateNormal]; btn.frame = CGRectMake(0, 0, 30, 30); [btn addTarget:self action:@selector(youraction:) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:btn]autorelease];