嗨,我有两个视图控制器,主视图有多个文本字段,正在将文本字段数据保存到模型类中,工作正常,但我的目标是我可以将模型类数据使用到多个视图控制器中。 那个是我的模特班
class PersonalDetails
{
private var _email:String?
var email:String! {
get {
return _email
} set {
if newValue != nil && newValue != ""{
self._email = newValue
}
}
}
init(email:String?) {
self._email = email
}
in mainview controller
var UserDetails = [PersonalDetails]();
Above viewdidload
UserDetails.append(PersonalDetails.init(email: signup_TxtEmailId.text ,fullName:signup_TxtFullName.text, phoneNumber: getNewMobileString))
inside button action I'm performing this one
如何从主视图控制器访问我的模型类数据到其他视图控制器(multipleviewcontroller),
答案 0 :(得分:0)
方法1
在下一个视图控制器中创建变量 UserDetails ,就像在主视图控制器中一样。然后将您在主视图控制器中的UserDetails数组传递给下一个视图控制器中的UserDetails数组
let vc = NextViewController()
vc.UserDetails = self.UserDetails
方法2
使用singleton将[PersonalDetails]数组保存为所有视图控制器可全局访问的数组。要创建一个单例,请将一个快速文件添加到您的项目中,然后将此代码粘贴到该文件中:-
class Singleton {
static let shared = Singleton()
var UserDetails = [PersonalDetails]()
}
然后在主视图控制器中,在将所有PersonalDetails对象附加到UserDetails数组后添加此代码:-
Singleton.shared.UserDetails = self.UserDetails
因此,在任何视图控制器中,任何时候您都可以使用以下行来调用该数组:-
Singleton.shared.UserDetails
因此,在关闭应用程序之前,UserDetails将保存在Singleton类中。同样,您随时可以更改该数组的值