为什么我的放松赛道会回到太远?

Eve*_*ibe 3 xcode ios swift unwind-segue

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

控制器架构

该应用程序首次在登录页面启动,如果用户单击"SignUp",则会以模态方式呈现导航控制器self.presentViewController.然后导航控制器推动视图控制器,然后推送到第二视图控制器.在该第二视图控制器上,用户必须首先按"开始"以模式导航到在继续注册过程之前请求附加信息的视图控制器.一旦用户在该模态呈现的控制器上输入附加信息,用户按下"返回"以通过展开segue返回到第二视图控制器.

但是,按下此按钮时,展开segue将返回到第二个视图控制器,但随后会立即返回"登录"页面.即使unwind函数嵌套在第二个视图控制器中,似乎unwind segue也会弹出所有模态显示的视图.

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

wak*_*umo 8

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

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

放松segue的步骤

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

  2. 控制 - 从Go-Back按钮拖动到故事板中Modally Presented Controller中的退出符号.选择控制器时,退出符号是控制器顶部的最后一个符号.这将显示您可以选择放松的@IBActions列表.选择您在SecondSignUpController中创建的方法.