展开segue工作不正确

时间:2018-06-13 16:37:17

标签: ios swift

现在我正在尝试执行一个放松的segue。我已成功创建了展开segue,但问题是当它被触发时,它会继续经过目标ViewController,它包含应该停止展开的@IBAction函数。 enter image description here

这就是我的故事板的样子。当我放松时,我在第三个测试视图控制器上。 unwind的@IBAction函数位于ResearchTestController(这是我想要的目的地)。触发展开时,它会向下展开到目标位置,然后在ResearchTestController顶部添加第三个测试视图控制器和第二个测试视图控制器的实例。这是视图层次结构的前后屏幕截图。

之前(在第三个测试视图控制器中开始放松之前): enter image description here

之后(放松后): enter image description here

从ViewController到ViewController的segue也是Show(push)。如果有人对如何解决这个问题有任何见解我会非常感激。非常感谢。

2 个答案:

答案 0 :(得分:0)

你的故事板表明,这不是一个放松的segue或你有一个额外的不受欢迎的segue。从FirstTestViewController到ResearchTestController都有一个推送segue。那是错的。你有一个潜在的push segues无限循环,因为它可以从ResearchTestController开始,然后推送一个FirstTestViewController,然后推送 second ResearchTestController,依此类推。这可能是您遇到问题的原因。

答案 1 :(得分:0)

我最终找出问题的解决方案。要从一个ViewController移动到下一个ViewController,我将在viewDidAppear方法中以编程方式进行segue。当您执行展开segue时,当应用程序正在展开时,它会触发它在堆栈中找到的每个ViewController的viewDidAppear方法。所以在我的情况下,它正在执行额外的segue,因为它正在通过ViewControllers堆栈移动。从而导致视图堆积在彼此之上。一旦我添加了适当的检查以确保没有发生,我解决了问题。