我正在尝试为我的应用程序的注册过程创建控制器架构。下图是当前状态的图片:
该应用程序第一次从登录页面启动,如果用户单击“注册”,则会通过模态呈现导航控制器self.presentViewController
。然后,导航控制器推送视图控制器,然后视图控制器推送到第二个视图控制器。在第二个视图控制器上,用户必须首先按“Go”以模态导航到请求附加信息的视图控制器,然后再继续注册过程。一旦用户在该模态呈现的控制器上输入附加信息,用户就按下“返回”以通过展开转场返回到第二视图控制器。
但是,当按下此按钮时,展开转场将返回到第二个视图控制器,但随后立即返回到“登录”页面。尽管展开函数嵌套在第二个视图控制器中,但展开序列似乎会弹出所有模态呈现的视图。
发生了什么事以及回到第二个注册页面的解决方案是什么?
我遇到了同样的问题,通常是由以下原因之一引起的:
- 使用已弃用的 segue
- 在用于展开的 @IBAction 方法内调用 viewController.dismissViewControllerAnimated。
- 在错误的控制器中使用 @IBAction 展开。 @IBAction 应该位于您想要展开到的控制器中。
展开 segue 的步骤
在 SecondSignupController 中创建一个 @IBAction 方法,该方法将在展开时调用。此方法应采用 UIStoryboardSegue 作为参数示例 ->
@IBAction func onUnwindFromModalPage(segue:UIStoryboardSegue){}。此方法的主要目的是传回数据(如果有),否则您可以将其留空。
按住 Control 键并从“返回”按钮拖动到情节提要中模态呈现控制器中的退出符号。当选择控制器时,退出符号是控制器顶部的最后一个符号。这将向您显示可以选择用于放松的 @IBActions 列表。选择您在 SecondSignUpController 中创建的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)