ios - 如何在 Storyboard 导航 Controller 中替换/自定义后退按钮图像

标签 ios uinavigationcontroller uistoryboard

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

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

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 的默认操作。

然后将这行代码放在 View Controller 中您希望自定义后退按钮出现在其中的代码。

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

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

}

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

关于ios - 如何在 Storyboard 导航 Controller 中替换/自定义后退按钮图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421769/

相关文章:

android - 通过在 Android/iOS 中使用 GeoCoding API 减少 Google Places 的使用

objective-c - 调整 UITableView 的大小

ios - 对于 iOS swift 应用程序开发的 Realm 数据库,使用另一个类的成员变量数组构造一个类的理想方法是什么?

uiviewcontroller - 如何在 Storyboard中的 View 之间导航而不使用导航栏或选项卡栏

ios - 如何在 objective-c 中导航到新 Storyboard文件上的 View Controller

ios - 选项卡式应用程序而不是 xcode 中的单一 View 应用程序?

ios - 包含尖括号 <> 的奇数属性声明语法

iOS8:在 prepareForSegue 中推送 View Controller 使其闪烁

iphone - 如何在 UIViewController 上没有 NavigationController 的情况下推送 DetailView

ios - 三个 View Controller 之间的导航,其中所有三个 View Controller 都在一个标签栏 View 中