我的任务是在iOS
应用程序中创建流程,用户可以在其中添加多个步骤,其中步骤的数量未定义,每个步骤在导航堆栈中充当ViewController
,用户可以在导航堆栈中向后移动进行编辑的同时添加多个步骤(VCs
),同时向前移动至现有步骤并且不会丢失任何输入的数据。
示例:用户创建第1步,用户创建第2步,用户创建第3步,用户返回到第2步,用户回到第1步,编辑信息,前进到第2步前进到步骤3,依此类推。
到目前为止,我正在考虑创建一种计数器,以跟踪除包含Classes
构成每个VC
的数据的VC
数组之外,用户正在执行的步骤。 navigationController
初始化程序和Public Sub ExportAsCSV(savePath)
Workbooks("OND Estimator").Worksheets("port").Copy 'Sheet to export as CSV
Application.DisplayAlerts = False 'Possibly overwrite without asking
with activeworkbook
.SaveAs Filename:=savePath, FileFormat:=xlCSV
.Close savechanges:=False
end with
Application.DisplayAlerts = True
End Sub
的推送和弹出操作有些麻烦。
任何帮助将不胜感激,也许有人袖手旁观。
答案 0 :(得分:1)
您可以通过将ViewController
本地存储到数组中来达到上述要求。
步骤:1 ,如下所示创建UIViewController的全局数组。
var aryAllViewController = [UIViewController]()
步骤:2 Append value into Array as below.
aryAllViewController.append(VC)
步骤:3 从Array获取旧的ViewController
引用,然后将其再次推送到Navigation Stack中。
如果正确执行上述步骤,则旧数据将自动显示。
答案 1 :(得分:1)
您应该创建一个用于容纳步骤对象的类
类似这样的东西
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)