在UITableViewController上按UIViewController时更改后退按钮标题

时间:2014-11-07 09:53:41

标签: ios uitableview swift uiviewcontroller uinavigationcontroller

查看层次结构:

UINavigationController
      ->UITableViewController(1)
             ->UITableViewController(2)
                   ->UIViewController(3)  

在1和2中我有这段代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    self.navigationItem.backBarButtonItem?.title = ""
}

它应该覆盖当前视图控制器上推送的下一个视图控制器的后退按钮标题。它的工作原理是1 - >但它不适用于2 - > 3.在3中,后退按钮标题有一个标题,即前一个UITableViewController的名称。

任何想法都错了吗?我正在使用swift,xcode6.1和iOS8.1

2 个答案:

答案 0 :(得分:10)

您可以初始化一个没有标题的新后退按钮。只需将其放在每个视图控制器的viewDidLoad()中即可。

self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)

-

我将根据我的经验扩展这个答案。所以我设法删除了后退按钮的标题,只显示后退箭头。在故事板中,您必须选择在前一个视图控制器的导航栏内显示标题的导航项。有一个名为后退按钮的属性。只需输入空格即可保存。它将删除后退按钮标题。

<强>更新 在iOS 8.0中已弃用UIBarButtonItemStyle.Bordered。请改用UIBarButtonItemStyle.Plain

答案 1 :(得分:0)

感谢, 如果您想使用客户后退按钮图像,您可以使用此

    self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: “backImage”)
    self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: “ backImage”)

    self.navigationItem.backBarButtonItem = UIBarButtonItem(title: “”, style: UIBarButtonItemStyle.Plain, target: nil, action: nil)