ios - 如何在多故事板应用程序中使用 segues 保存数据?
问题描述
我对编码非常陌生,我正在尝试制作一个简单的应用程序。该应用程序是一种问卷调查,它会问你一个问题,你必须把答案放在 textField 中。问题是当您尝试返回上一页时,您在 textField 中输入的文本会消失。如果您决定更改某些问题的答案,我希望文本保留在那里。
这是第一个视图:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func startedButtonPressed(_ sender: UIButton) {
self.performSegue(withIdentifier: "goToPageTwo", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if segue.identifier == "goToPageTwo" {
let destinationVC = segue.destination as! PageTwoViewController
这是第二个页面视图:
import UIKit
class PageTwoViewController: UIViewController {
var textBox: String?
@IBOutlet weak var textFieldOne: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func backButtonPressed(_ sender: UIButton) {
self.dismiss(animated: true, completion: nil)
}
解决方案
如果您的问卷有多个页面,处理它的一种方法是使用数据结构在用户键入答案后保存所有答案,然后将它们加载到页面上的文本框(如果可用)。
您可以使用哈希图,其中键是问题编号,值是文本答案。
然后,您可以使用 segue/unwind segue 向前/向后传递该 Map。
使用带有 Hashmap 的静态类可能更容易,以便从每个视图控制器访问。
推荐阅读
- haskell - 链接类型类、类和实例
- python - 使用索引查找和打印特定单词
- python - 如何使用 Pybuilder 将包上传和下载到本地 pypi
- reactjs - 编码空格时反应不一致
- performance - IndexedDB 数据库备份/恢复场景
- git - 如何防止git覆盖.CSPROJ等文件?
- html - 如何将 Bootstrap 用于定位、分层和响应式 Div
- r - 如何使 Markdown 模板/Latex 包适应 R-Markdown?
- javascript - 使用 Object.values() 后创建新对象的更简洁方法?
- mongodb - 聚合和搜索嵌套文档