为什么我的放松回落太远了?

我正在尝试为我的应用程序的注册过程创build控制器体系结构。 以下是目前状态的图片:

控制器架构

应用程序首次从login页面开始,如果用户点击“SignUp”,则通过self.presentViewController模态方式呈现导航控制器。 然后导航控制器通过一个视图控制器,然后推到第二个视图控制器。 在这个第二个视图控制器上,用户必须先按下“Go”才能以模态方式导航到请求附加信息的视图控制器,然后再继续注册过程。 一旦用户在这个模态呈现的控制器上input了额外的信息,用户按下“返回”通过展开顺序返回到第二个视图控制器。

但是,按下此button时,展开的segue将返回到第二个视图控制器,但会立即返回到“login”页面。 即使展开函数嵌套在第二个视图控制器中,看起来unwind segue也会popup所有模态呈现的视图。

发生什么事了,解开第二个注册页面的解决scheme是什么?

我有同样的问题,通常是由以下原因之一造成的:

  1. 使用已弃用的segue
  2. 在用于展开的@IBAction方法内调用viewController.dismissViewControllerAnimated。
  3. 让@IBAction用于在错误的控制器中展开。 @IBAction应该在你想放松的控制器中。

步骤来放松一个segue

  1. 在SecondSignupController中创build一个@IBAction方法,这个方法将被展开调用。 这个方法应该把一个UIStoryboardSegue作为一个参数的例子 – > @IBAction func onUnwindFromModalPage(segue:UIStoryboardSegue){}。 这种方法的主要目的是传回数据,否则你可以把它留空。

  2. 控制 – 从“返回”button拖动到故事板中“模态显示控制器”中的退出符号。 退出符号是select控制器时控制器顶部的最后一个符号。 这会显示你可以select放松的@IBActions列表。 select您在SecondSignUpController中创build的方法。