我可以重写为segue方法准备以便使用UIViewController扩展添加一些代码吗?

时间:2018-10-04 03:53:54

标签: ios swift

enter image description here

我需要制作一个没有标题的后退按钮,如上图所示,所以我只需要“ <”酒吧按钮而不是“ <主页”酒吧按钮

要实现它,我在准备segue方法中使用了下面的代码

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        // to remove title in back button in the segue destionation view controller
        navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)

    }

但是我必须将该代码放入许多视图控制器中。所以我认为我可以使用如下的UIViewController扩展使其更简单

extension UIViewController {

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        super.prepare(for segue: UIStoryboardSegue, sender: Any?)

        // to remove title in back button in the segue destionation view controller
        navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)

    }

}

因此,当我再次调用为segue做准备时,它将自动实现以下代码,而无需在每个视图控制器中再次写入该代码

navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)

1 个答案:

答案 0 :(得分:1)

通过配置导航项,您可以在View Controller的标题和其他View Controller的后退按钮上使用不同的文本。 enter image description here 如果“后退按钮”文本为空,则会自动使用“标题”。您可以在上一个View Controller的Navigation Item的Back Button字段中放置一个空格。这样,返回按钮上显示的标题将变成一个空格,而您自己想要的标题仍然是您想要的。 enter image description here