如何在swift ios中closures2视图控制器?
我想在swift ios中closures2视图控制器?
以下是我的代码。
@IBAction func backButtonTapped(sender: AnyObject) { self.presentingViewController.presentingViewController.dismissViewControllerAnimated(true, completion: nil) }
为了这个目的,有特殊的放开继续 ,它打算在堆栈中回滚到特定的视图控制器。
让我们把最上面的控制器(你从哪里去)作为源和堆栈中的控制器(你想要回滚到顶端)作为目的地 。
-
在目的地创build
IBAction
以在展开时继续触发:@IBAction func myUnwindAction(segue: UIStoryboardSegue) {}
它可以是空的。
-
在源代码控制器中,通过从控制器图标上拖动来创build一个展开顺序,然后在步骤1中find您创build的操作。调用该
unwind
。 -
现在你可以用普通的代码来执行代码
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: {}); }); }