如何 replace/customize 故事板导航控制器中的后退按钮图像

how to replace/customize back button image in storyboard navigationcontroller

我想用自定义图像替换后退按钮中的文本。我怎样才能在 swift 代码中做到这一点?我不想替换整个后退栏按钮,因为我想保留返回上一个视图的默认操作行为。我还想根据返回目的地(基于 storyboardId)的位置做一个 switch 语句,这样我就可以根据视图显示不同的图像。

这会替换图像,但它会消除默认的后退按钮行为,我需要区分后退目标是什么,以便我可以显示正确的后退图像。

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

您在找这样的东西吗?

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];

尝试更改您的 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 的默认操作。

并将该行代码放在视图控制器之前您希望自定义后退按钮出现在其中的代码。

编辑:如果您不希望“<”符号出现在您的按钮上,您实际上必须使用 leftBarButtonItem 然后关闭单独方法中的视图控制器,例如:

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

}

func backButtonPressed(sender:UIButton) {
    navigationController?.popViewControllerAnimated(true)
}