在导航堆栈中的视图控制器之间循环 OS



我的任务是在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引用,然后再次将其推送到导航堆栈中。

如果您正确执行上述步骤,则旧数据将自动显示。

相关内容

  • 没有找到相关文章

最新更新