向导航控制器添加另一个后退按钮

Add another back button to a Navigation Controller

我有一个导航控制器,所以当我单击主视图上的按钮时,它会打开另一个带有 "Back" 导航项的视图。

我想要做的是在右侧的第二个视图中添加另一个项目,因此该视图应该有一个 "Back" 项目,已经工作,还有一个新的 "Edit" 项目它与“后退”按钮的作用相同,但我可以获得 prepareForSegue 函数 运行 补充一些代码。

我怎样才能做到这一点?

这是我尝试过的:

我正在使用两个导航控制器,因为如果我的第二个视图未嵌入导航控制器,我将无法添加 "Edit" 项目。 所以这是有效的,我有两个 "Back" 和 "Edit" 项目,但我不知道如何设法获得与 "Edit" 上的 "Back" 项目相同的行为] 项目,我试过 segues 但它没有按预期工作。 请注意,我在第一个视图中谈到的按钮没有显示在编辑器中,也没有显示在它的 segue 中,我是通过编程方式完成的。

您可以在点击 edit button 时简单地调用 popViewController(animated:)

class ViewController: UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()
        let editItem = UIBarButtonItem(title: "Edit", style: .plain, target: self, action: #selector(editButtonTapped(_:)))
        self.navigationItem.rightBarButtonItem = editItem

    }

    @objc func editButtonTapped(_ sender: UIBarButtonItem)
    {
        self.navigationController?.popViewController(animated: true)
    }
}

故事板: