首页 > 解决方案 > segue 是否创建了目标 ViewController 的实例?如果我完成了它们,我应该从堆栈中删除它们吗?如果是这样,怎么做?

问题描述

请看一下我分享的图片。Main.storyboard 中有 4 个 ViewController:

Main.storyboardview

这是viewController列表:

AViewController 是一个初始的 ViewController。

如您所见,还有 4 个转场:

我为这些按钮编写了以下代码:

self.performSegue(withIdentifier: "takeMeToTheBViewController", sender : self)
self.performSegue(withIdentifier: "takeMeToTheCViewController", sender : self)
self.performSegue(withIdentifier: "takeMeToTheDViewController", sender : self)
self.performSegue(withIdentifier: "takeMeToTheAViewController", sender : self)

我为后退按钮操作编写了以下代码:

self.dismiss(animated: true, completion: nil)

我有3个问题:

第一种情况:假设我打开了应用程序。然后我点击按钮AViewController。此操作将我带到 BViewController。然后我点击takeMeToTheCViewController按钮BViewController。这个动作把我带到了CViewController. 然后我点击takeMeToTheDViewController按钮CViewController。这个动作把我带到了DViewController. 然后我点击takeMeToTheAViewController按钮DViewController。这个动作把我带到了AViewController. 这是问题 1: 在所有这些操作之后,您能告诉我堆栈中的实例吗?下面的项目是否适用于堆栈?

这是问题1.1: 请根据上述第一种情况回答此问题。如果上面的实例项是真的,我应该怎么做才能从堆栈中删除下面的实例:

因为我现在不需要它们。我只需要 AViewController(1) 因为我目前在 AViewController 中。

第二个场景:让我们继续第一个场景。我在第一页。现在我单击 AViewController 中的“takeMeToTheBViewController”按钮。 这是问题 2: 在所有这些操作之后,您能告诉我堆栈中的实例吗?下面的项目是否适用于堆栈?

第三个场景:让我们继续第二个场景。我在第二页。现在我单击 BViewController 中的“返回”按钮(如您所知,使用关闭代码)此操作将我带到 AViewController。 这是问题 3: 在所有这些操作之后,您能告诉我堆栈中的实例吗?下面的项目是否适用于堆栈?

我的意思是通过单击按钮BViewController(2)从堆栈中删除实例。back这是真的?

这里是问题4: 如果这些实例堆积在堆栈中会不会是一个崩溃问题?请问可以回复问题编号吗?

标签: swift

解决方案


推荐阅读