我的任务是在iOS
应用程序中创建一个流,用户可以在其中添加多个步骤,其中步骤数未定义,每个步骤都充当导航堆栈中的ViewController
,用户可以添加多个步骤(VCs
(,同时在导航堆栈中向后移动以进行编辑, 同时向前移动到现有步骤并且不会丢失任何输入的数据。
示例:用户创建步骤 1,用户创建步骤 2,用户创建步骤 3,用户移回步骤 2,用户移回步骤 1,编辑信息,前进到步骤 2,前进到步骤 3,等等。
到目前为止,我正在考虑创建一种计数器来跟踪用户所在的步骤,以及保存构建每个VC
的数据的Classes
数组,但我在VC
初始化项和navigationController
推送和弹出时遇到了一些麻烦。
任何帮助将不胜感激,也许有人有袖子里的东西。
你应该创建一个类来保存步骤对象
像这样的东西
class DataClass {
static let shared = DataClass()
var arrayObjects: [Any]
private init() {
arrayObjects = []
}
func addObject(object: Any) -> [Any] {
arrayObjects.append(object)
return arrayObjects
}
func clearObjects() {
arrayObjects.removeAll()
}
func object(at step: Int) -> Any? {
guard arrayObjects.count > step else {
return nil
}
return DataClass.shared.arrayObjects[step]
}
}
并在每一步中使用这样的数据。
DataClass.shared.object(at: step)
您可以通过将ViewController
本地存储到数组中来实现上述要求。
步骤:1创建UIView控制器的全局数组,如下所示。
var aryAllViewController = [UIViewController]()
步数:2Append value into Array as below.
aryAllViewController.append(VC)
步骤:3从数组中获取旧ViewController
引用,然后再次将其推送到导航堆栈中。
如果您正确执行上述步骤,则旧数据将自动显示。