swift - segue 是否创建了目标 ViewController 的实例?如果我完成了它们,我应该从堆栈中删除它们吗?如果是这样,怎么做?
问题描述
请看一下我分享的图片。Main.storyboard 中有 4 个 ViewController:
这是viewController
列表:
- 视图控制器
- 视图控制器
- 视图控制器
- 视图控制器
AViewController 是一个初始的 ViewController。
AViewController 有一个名为“Take Me To The BViewController”的按钮
BViewController 有两个按钮:“Take Me To The CViewController”和返回按钮
CViewController 有两个按钮:“Take Me To The CViewController”和返回按钮
DViewController 有两个按钮:“Take Me To The AViewController”和返回按钮
如您所见,还有 4 个转场:
- 第一个转场是 A 到 B
- 第二个转场是 B 到 C
- 第三个转场是 C 到 D
- 第四段是 D 到 A
我为这些按钮编写了以下代码:
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:
在所有这些操作之后,您能告诉我堆栈中的实例吗?下面的项目是否适用于堆栈?
- 的实例
AViewController(1)
, - 的实例
AViewController(2)
, - 的实例
BViewController
, - 的实例
CViewController
, - 的实例
DViewController
这是问题1.1: 请根据上述第一种情况回答此问题。如果上面的实例项是真的,我应该怎么做才能从堆栈中删除下面的实例:
- 的实例
AViewController(2)
, - 的实例
BViewController
, - 的实例
CViewController
, - 的实例
DViewController
因为我现在不需要它们。我只需要 AViewController(1) 因为我目前在 AViewController 中。
第二个场景:让我们继续第一个场景。我在第一页。现在我单击 AViewController 中的“takeMeToTheBViewController”按钮。 这是问题 2: 在所有这些操作之后,您能告诉我堆栈中的实例吗?下面的项目是否适用于堆栈?
- 的实例
AViewController(1)
, - 的实例
AViewController(2)
, - 的实例
BViewController(1)
, - 的实例
BViewController(2)
, - 的实例
CViewController
, - 的实例
DViewController
第三个场景:让我们继续第二个场景。我在第二页。现在我单击 BViewController 中的“返回”按钮(如您所知,使用关闭代码)此操作将我带到 AViewController。 这是问题 3: 在所有这些操作之后,您能告诉我堆栈中的实例吗?下面的项目是否适用于堆栈?
- 的实例
AViewController(1)
, - 的实例
AViewController(2)
, - 的实例
BViewController(1)
, - 的实例
CViewController
, - 的实例
DViewController
我的意思是通过单击按钮BViewController(2)
从堆栈中删除实例。back
这是真的?
这里是问题4: 如果这些实例堆积在堆栈中会不会是一个崩溃问题?请问可以回复问题编号吗?
解决方案
推荐阅读
- c - c 中 fork() 的输出
- logic - 如何在 Coq 中证明以下内容?
- html - 在问题和答案周围创建边框
- java - 如何合并列表
在分组期间 - javascript - 使用正则表达式匹配多个结果
- c# - 如何通过memberinfo访问会员的会员?
- html - Cakephp 3: how to add class to wrapper of input checkbox element and put class on label/input field?
- wordpress - Delete images when uninstalling plugin
- java - 如何识别单击了哪个子 LinearLayout?
- python - Reconciling Records (Date and Number Value): Given two datasets with multiple features, how to get the most likely match?