现在我正在尝试执行一个放松的segue。我已成功创建了展开segue,但问题是当它被触发时,它会继续经过目标ViewController,它包含应该停止展开的@IBAction函数。
这就是我的故事板的样子。当我放松时,我在第三个测试视图控制器上。 unwind的@IBAction函数位于ResearchTestController(这是我想要的目的地)。触发展开时,它会向下展开到目标位置,然后在ResearchTestController顶部添加第三个测试视图控制器和第二个测试视图控制器的实例。这是视图层次结构的前后屏幕截图。
从ViewController到ViewController的segue也是Show(push)。如果有人对如何解决这个问题有任何见解我会非常感激。非常感谢。
答案 0 :(得分:0)
你的故事板表明,这不是一个放松的segue或你有一个额外的不受欢迎的segue。从FirstTestViewController到ResearchTestController都有一个推送segue。那是错的。你有一个潜在的push segues无限循环,因为它可以从ResearchTestController开始,然后推送一个FirstTestViewController,然后推送 second ResearchTestController,依此类推。这可能是您遇到问题的原因。
答案 1 :(得分:0)
我最终找出问题的解决方案。要从一个ViewController移动到下一个ViewController,我将在viewDidAppear方法中以编程方式进行segue。当您执行展开segue时,当应用程序正在展开时,它会触发它在堆栈中找到的每个ViewController的viewDidAppear方法。所以在我的情况下,它正在执行额外的segue,因为它正在通过ViewControllers堆栈移动。从而导致视图堆积在彼此之上。一旦我添加了适当的检查以确保没有发生,我解决了问题。