劫持后退按钮 - 无法嘲笑 - 斯威夫特

时间:2015-07-30 07:11:15

标签: swift segue back-button

我需要后退按钮带我到上一个分层视图,而不是之前访问过的视图,并在“actionSave”功能之前保存一些数据。下面的代码显示熟悉的后退按钮,执行该功能,然后将我带到上一个访问过的视图。

// Takeover Back Button
self.navigationItem.hidesBackButton = false
let newBackButton = UIBarButtonItem(title: "", style: .Plain, target: self, action: "actionSave:")
navigationController?.navigationBar.topItem?.backBarButtonItem = newBackButton

如何强制它到特定视图?故事板不允许我从后退按钮链接到特定视图,所以我可以使用Segue。

2 个答案:

答案 0 :(得分:0)

您可以使用以下方式访问Stack中的所有ViewControllers:

yourViewControllerYouNeed = self.navigationController?.viewControllers[index] as! UIViewController //(or your specific class)

您可以使用以下方法更改为特定的

mainVC?.visibleViewController.navigationController?.presentViewController(yourViewControllerYouNeed, animated: false, completion: nil)

答案 1 :(得分:0)

以下是在故事板中设置segue的方法:

  1. 控制从上一个ViewController的文件所有者图标拖动到您的特定ViewController
  2. 选择"以模态呈现"来自弹出窗口。
  3. enter image description here

    之后你可以用这种方式执行segue:

    override func viewDidLoad() {
        super.viewDidLoad()
        let backButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Plain, target: self, action: "goBack")
        navigationItem.leftBarButtonItem = backButton
    
    }
    
    func goBack() {
        performSegueWithIdentifier("viewB", sender: nil)
    }