保存来自页面视图控制器的文本输入

Posted

技术标签:

【中文标题】保存来自页面视图控制器的文本输入【英文标题】:Saving text input from page view controllers 【发布时间】:2017-06-11 16:23:38 【问题描述】:

我有以下 页面视图控制器的子代:

我的目标是在最后一个视图控制器上单击完成按钮后保存用户名输入数据。我的每个视图控制器都具有相同的 ViewController swift 文件。将用户名数据或性别数据保存到变量的最佳方法是什么?我尝试将其保存在viewDidLoadViewWillDisappearViewWillAppear,但我一直收到一个

零错误

有什么想法吗?下面是我的代码。谢谢

@IBOutlet weak var usernameTF: UITextField!
@IBOutlet weak var genderSeg: UISegmentedControl!
@IBOutlet weak var birthdatePicker: UIDatePicker!
@IBOutlet weak var profileImg: UIImageView!



var downloadURL = ""
var bio = ""
var name = ""
var age = ""
var weight = ""
var username = ""
var gender = ""

override func viewDidLoad() 
    super.viewDidLoad()





@IBAction func uploadProfileImg(_ sender: Any) 
    handleSelectLogo()


@IBAction func doneBtnTapped(_ sender: Any) 


    let bio = ""
    let name = ""
    let age = ""
    let weight = ""
    self.username = usernameTF.text!

    self.gender = genderSeg.titleForSegment(at: genderSeg.selectedSegmentIndex)!

    if ((self.username.characters.count) > 0 && (downloadURL.characters.count) > 0) 

【问题讨论】:

所以我想您正在尝试保存此信息以满足应用程序中的未来需求,核心数据可能是存储数据的最佳位置,并可能添加一个隐藏在视图中的标签,该标签设置为当按下下一个按钮时,用户输入,然后切换到下一页。这是我最好的猜测,不知道到底发生了什么。 将所有数据传递给 LastViewController 并保存到 UserDefault。 【参考方案1】:

其中一种方法是使用 UserDefaults 保存每个页面中的所有用户输入数据,在 LastViewController 中您可以访问这些保存的用户默认值

UserDefaults.standard.set(username, forKey: "Username")
UserDefaults.standard.set(gender, forKey: "Gender")

等等,您可以通过以下方式获取/访问这些内容:

let username = UserDefaults.standard.string(forKey: "UserName")
let gender = UserDefaults.standard.string(forKey: "Gender")

【讨论】:

以上是关于保存来自页面视图控制器的文本输入的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Auth 使用来自不同类的文本输入创建新用户

如何使用来自另一个视图控制器swift的用户输入创建具有表视图单元格的列表

如何保存uitextfield以使文本保持从视图控制器到视图控制器

使用来自单独的表视图控制器的选定单元格填充文本字段

在多个视图控制器、多个故事板上显示用户输入的文本

如何将 fmdb 用于登录页面?