如何创建自定义后退按钮以用于导航栏和子视图

时间:2016-02-03 00:50:47

标签: ios swift uinavigationbar

我有一个带有tableview和详细视图控制器的主视图控制器,用于显示有关所选项目的详细信息。我有一个导航栏,当用户切换到详细信息屏幕时插入后退按钮。在这个详细信息屏幕上,我有一个容器视图,可以在屏幕的下半部分显示其他视图控制器。当用户调出子视图时,我想用我的自定义按钮替换标准后退按钮,该按钮只是重新调整子视图,而不是返回到主视图控制器。子视图消失后,后退按钮应恢复为后退按钮,按下后将返回主视图控制器。

我的问题是我无法使后退按钮看起来一样,所以用户不知道我正在使用不同的按钮来实现这些不同的东西。做这个的最好方式是什么?我无法让文字匹配,图像是更好的方法吗?

目前在主视图控制器的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

目前详细视图控制器:

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
   }

非常感谢任何帮助,在此先感谢!!

1 个答案:

答案 0 :(得分:1)

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

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

或者你可以在没有头顶的情况下捎带默认的iOS按钮

将后面的标题设置为&#34;&#34; 并设置后方指示图像

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