我正在尝试使用Xcode使用Swift编程语言创建iPhone游戏应用程序。我将项目创建为单视图应用程序,我一直在添加视图控制器,并使用Storyboard将它们与segue连接起来。
从我所了解的数小时的工作(比迟到的更好),是VC不使用堆栈,而连接到其他VC的导航控制器确实使用堆栈。因此,假设没有使用导航控制器,如果我使用" show"从一个VC到另一个VC,它不会将正在进行的VC推送到启动segue的VC上。相反,它将以模态方式显示"。
我对此有几个问题。
当我在VC之间移动时,如果他们没有使用堆栈,会发生什么?例如,当我从一个VC移动到另一个VC时,先前的VC是从内存中移除的,还是当我在它们之间移动时,内存是否继续占用越来越多的VC?
由于VC最初没有导航控制器而无法从堆栈弹出,有没有办法防止我的应用程序崩溃,例如在VC之间划分的特定方式?
在单视图应用程序/选项卡式应用程序等中创建项目时,这是否会影响应用程序无限期执行的操作,或者Xcode是否只是创建一个基本模板?例如,我可以从单视图应用程序开始,但将其转换为选项卡式应用程序吗?我认为答案是肯定的,但确认总是很好。
非常感谢有关这些问题的任何信息! 谢谢!
答案 0 :(得分:0)
当我在VC之间移动时会发生什么,如果不是的话 使用堆栈?例如,当我从一个VC移动到另一个VC时,是 先前的VC从内存中删除,或者内存是否继续使用 当我在他们之间移动时,越来越多的VC副本?
之前的VC留在内存中。每个新的segue都会创建一个新的VC。
由于VC最初没有初始化而无法从堆栈中弹出 导航控制器,有什么办法可以防止我的应用崩溃, 比如在VC之间划分的特定方式?
只有一种不创建新VC的segue类型,即unwind segue。您可以使用它返回上一个VC。搜索Stack Overflow for“unwind segue”以查看如何设置它。
在单视图应用程序/选项卡中创建项目时 应用程序等,这是否会影响应用程序的功能 无限期地做,或Xcode只是创建一个基本模板 从...开始?例如,我可以从单视图开始 应用程序,但将其变成选项卡式应用程序?我假设了 答案是肯定的,但确认总是很好。
模板只是为适合该模板类型的Storyboard和ViewControllers启动。您可以轻松删除或修改它们以更改应用程序的功能。