简体   繁体   English

如何关闭VIewController iOS Swift

[英]How to dismiss VIewController iOS Swift

I am new to iOS development. 我是iOS开发的新手。 I am developing an application using iOS Swift. 我正在使用iOS Swift开发应用程序。 I have 3 view controllers viewController1, viewController2, viewController3. 我有3个视图控制器viewController1,viewController2,viewController3。 When I click from viewController1 its move to viewController2. 当我从viewController1单击时,将其移至viewController2。 By using the following code 通过使用以下代码

let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let secondViewController = storyboard.instantiateViewControllerWithIdentifier("viewController2")
        presentViewController(secondViewController, animated: false, completion: nil)

Now I am moving from viewController2 to viewController3 by using the following code 现在,通过使用以下代码,我从viewController2移至viewController3

performSegueWithIdentifier("viewController3", sender: scoreColorArray);

It's all fine. 没事的 Now I want to back from viewController3 to viewController1. 现在我想从viewController3返回到viewController1。 My problem it is not going to viewController1 it is going to viewController2. 我的问题是它不会去viewController1,而是会去viewController2。 I know the reason viewController2 not dismissed. 我知道viewController2未被驳回的原因。

I want to dismiss the current view controller and start new one . 我想关闭当前的视图控制器并启动新的视图控制器 How can I do it? 我该怎么做? I know there is some ways to do it, please someone help me to finds the issue. 我知道有一些方法可以解决,请有人帮我找到问题。

由于您的演示文稿顺序为VC1 - > VC2 - > VC3需要调用self.presentingViewController?.presentingViewController?.dismissViewControllerA‌​animatedVC3 ,穿越这样你在相反的顺序。

You can achieve it by using delegate. 您可以通过使用委托来实现。

  • You send delegate call from controller 2 to controller 1 for dismiss controller 2. 您将代表呼叫从controller 2发送到controller 1以关闭控制器2。
  • After dismiss success, you will push controller 3 from controller 1 解除成功后,将controller 3controller 1推入

You can look my demo for this case: Demo Pushview 您可以在这种情况下查看我的演示: 演示Pushview

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM