如何在swift ios中closures2视图控制器?

我想在swift ios中closures2视图控制器?

以下是我的代码。

@IBAction func backButtonTapped(sender: AnyObject) { self.presentingViewController.presentingViewController.dismissViewControllerAnimated(true, completion: nil) } 

为了这个目的,有特殊的放开继续 ,它打算在堆栈中回滚到特定的视图控制器。

让我们把最上面的控制器(你从哪里去)作为和堆栈中的控制器(你想要回滚到顶端)作为目的地

  1. 目的地创buildIBAction以在展开时继续触发:

    @IBAction func myUnwindAction(segue: UIStoryboardSegue) {}

它可以是空的。

  1. 源代码控制器中,通过从控制器图标上拖动来创build一个展开顺序,然后在步骤1中find您创build的操作。调用该unwind

  2. 现在你可以用普通的代码来执行代码

    performSegueWithIdentifier("unwind", sender: nil)

我描述了如何从代码发出unwind segue。 对于button展开,可以通过将button拖到退出图标直接创buildIB。

另请参阅此讨论以获取更多信息: 如何以编程方式执行Unwind segue?

最新的swift3版本你可以在swift3中一次closures两个视图控制器,使用这个下面的代码

  func dismissTwoViews(){ self.presentingViewController?.presentingViewController?.dismiss(animated: true, completion: nil) } 

一次只能closures一个视图控制器。 尝试这个

 @IBAction func backButtonTapped(sender: AnyObject) { self.presentingViewController?.dismissViewControllerAnimated(true, completion: { let secondPresentingVC = self.presentingViewController?.presentingViewController; secondPresentingVC?.dismissViewControllerAnimated(true, completion: {}); }); }