首页 > 解决方案 > 两个 ViewController 展开问题

问题描述

我有三个视图控制器,并希望在单击按钮时从第三个返回到第一个。我执行以下操作:

  1. 将目标添加到我的按钮:doneButton.addTarget(self, action: #selector(ThirdViewController.doneButtonPressed(_:)), for: .touchUpInside)
  2. 在第一个控制器中创建操作:@IBAction func unwindFromNewSubscription(segue: UIStoryboardSegue) { }
  3. 创建 unwind segue 将其链接到情节提要中 #2 中的动作并设置“chageFromNewToMain”标识符
  4. 在第三个控制器中为我的按钮创建操作:@IBAction func doneButtonPressed(_ sender:UIButton!) { print("DONE BUTTON PRESSED") performSegue(withIdentifier: "changeFromNewToMain", sender: self) }

它可以工作,但是当我点击 V3 中的按钮时,它会立即消失,我看到动画:V2 向下滑动,所以最后我可以看到 V1。但我想让 V3 动画滑下而不是在那之后消失看到 V1。任何想法如何解决这个问题?

(V1、V2、V3 - 视图控制器 1、2、3)

标签: iosswiftviewcontrollerunwind-segue

解决方案


尝试presentingViewController?.dismiss(animated: true, completion: nil)在您的@IBAction func doneButtonPressed(_ sender:UIButton!)操作中使用而不是调用performSegue(withIdentifier: "changeFromNewToMain", sender: self).


推荐阅读