ios - 如何创建用于导航栏和 subview 的自定义后退按钮

标签 ios swift uinavigationbar

我有一个带有 TableView 的主视图 Controller 和一个详细 View Controller 来显示有关所选项目的详细信息。我有一个导航栏,当用户转到详细信息屏幕时,它会插入一个后退按钮。在这个详细信息屏幕上,我有一个容器 View ,可以在屏幕的下半部分显示其他 View Controller 。当用户调出一个 subview 时,我想用我的自定义按钮替换标准后退按钮,该按钮只会退出 subview ,而不是返回到主视图 Controller 。一旦 subview 消失,后退按钮应恢复为普通后退按钮,按下后将返回主视图 Controller 。

我的问题是我无法让后退按钮显示相同,因此用户不知道我使用不同的按钮来实现这些不同的事情。做这个的最好方式是什么?我无法使文本匹配,图像是更好的方法吗?

当前在主视图 Controller 的prepareForSegue中:

// setting nav button text to "<" which is default when no text
      let backItem = UIBarButtonItem()
      backItem.title = ""
      navigationController?.navigationBar.tintColor = UIColor.whiteColor()
      navigationItem.backBarButtonItem = backItem

当前详细 View Controller :

func createCustomBackButton() {

      self.navigationItem.hidesBackButton = true

      let customFont = UIFont(name: "HelveticaNeue", size: 30.0)!
      UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: customFont], forState: UIControlState.Normal)

      customBackButton = UIBarButtonItem(title: "<", style: .Plain, target: self, action: "back:")
      self.navigationItem.leftBarButtonItem = customBackButton
   }

非常感谢任何帮助,提前致谢!!

最佳答案

所以简短的回答是你必须创建自己的后退按钮

   self.navigationItem.hidesBackButton = true;
  self.navigationItem.leftBarButtonItem = //your custom bar button item

或者,您可以在没有开销的情况下搭载默认的 iOS 按钮

通过将后台标题设置为“” 并设置后退指示器图像

    self.backIndicatorImage = backButtonIcon.image
    self.backIndicatorTransitionMaskImage = backButtonIcon.image

关于ios - 如何创建用于导航栏和 subview 的自定义后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35166603/

相关文章:

ios - 以编程方式将文本放入 UIView

ios - 限制 iPad 只能使用一个应用程序

ios - 如何防止 UINavigationBar 在 iOS 7 中覆盖 View 顶部?

ios - 使 UINavigationBar 透明

ios - 如何将导航按钮一直限制在左侧或右侧? (iOS)

iOS 设备上的 html 电子邮件

objective-c - Xcode 4.5 GM 上的 Restkit 在 iOS 6 设备上不起作用 - 文件是为存档构建的,不是链接的体系结构

ios - 如何使用 swift 在 firestore 文档的字段中创建空值?

ios - 如何在 iOS(Swift 或 Objective C)中实现这样的套接字调用?

swift - 随着我的 UILabel 尺寸的增加,在它周围获得额外的空间