模型类数据迅速访问全视图控制器

时间:2018-07-11 09:03:39

标签: ios swift class

嗨,我有两个视图控制器,主视图有多个文本字段,正在将文本字段数据保存到模型类中,工作正常,但我的目标是我可以将模型类数据使用到多个视图控制器中。 那个是我的模特班

   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),

1 个答案:

答案 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类中。同样,您随时可以更改该数组的值