3

我正在尝试为我的应用程序的注册过程创建控制器架构。下面是当前状态的图像:

控制器架构

该应用程序第一次从登录页面启动,如果用户单击“注册”,则会通过self.presentViewController. 导航控制器然后推送通过视图控制器,然后推送到第二个视图控制器。在第二个视图控制器上,用户必须先按“Go”以模态方式导航到请求附加信息的视图控制器,然后才能继续注册过程。一旦用户在这个模态呈现的控制器上输入了附加信息,用户按下“Go Back”通过展开转场返回到第二个视图控制器。

但是,当按下它时,展开转场将返回到第二个视图控制器,但随后立即返回到“登录”页面。即使 unwind 函数嵌套在第二个视图控制器中,似乎 unwind segue 会弹出所有模态呈现的视图。

发生了什么,展开到第二个注册页面的解决方案是什么?

4

1 回答 1

8

我遇到了同样的问题,通常是由以下原因之一引起的:

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

展开 segue 的步骤

  1. 在 SecondSignupController 中创建一个 @IBAction 方法,该方法将在展开时调用。此方法应将 UIStoryboardSegue 作为参数示例 -> @IBAction func onUnwindFromModalPage(segue:UIStoryboardSegue){}。此方法的主要目的是传回数据,否则您可以将其留空。

  2. Control-Drag 从 Go-Back 按钮以退出情节提要中模态呈现控制器中的符号。退出符号是选择控制器时控制器顶部的最后一个符号。这将显示您可以选择放松的@IBActions 列表。选择您在 SecondSignUpController 中创建的方法。

于 2015-10-17T01:29:35.220 回答