ios - 模型类数据快速访问所有 View Controller

标签 ios swift class

您好我有两个 View Controller 主视图有多个文本字段我将文本字段数据保存到模型类中,工作正常但我的目标是我可以将模型类数据用于多个 View Controller 。 这是我的模型类

   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 

如何从主视图 Controller 访问我的模型类数据到其他 View Controller (多 View Controller ),

最佳答案

方法一

在下一个 View Controller 中创建一个变量UserDetails,就像在主视图 Controller 中所做的那样。然后将主视图 Controller 中的 UserDetails 数组传递给下一个 View Controller 中的 UserDetails 数组

let vc = NextViewController()
vc.UserDetails = self.UserDetails

方法二

使用单例将 [PersonalDetails] 数组保存为所有 View Controller 都可以全局访问。要创建单例,请将一个 swift 文件添加到您的项目并将此代码粘贴到该文件中:-

class Singleton {
    static let shared = Singleton()
    var UserDetails = [PersonalDetails]()
}

然后在您的主视图 Controller 中,在将所有 PersonalDetails 对象附加到 UserDetails 数组后添加:-

Singleton.shared.UserDetails = self.UserDetails

所以从任何 View Controller ,任何时候你都可以使用这一行调用该数组:-

Singleton.shared.UserDetails

因此 UserDetails 将保存在 Singleton 类中,直到您关闭应用程序。此外,您还可以随时更改该数组的值

关于ios - 模型类数据快速访问所有 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51281405/

相关文章:

ios - 控制iOS应用程序的版本

C#类继承和一个简单的例子

ios - UIView 组合不同时长的动画

ios - 使用 iOS 6/7 Deltas 时 UIWebView 变得太大

ios - 如何检测 Spritekit 节点上的滑动?

ios - 使用核心数据时更新 Spotlight 搜索索引?

ios - CMMotionActivityManager queryActivityStarting 数据在闭包外不可用

ios - 用于设置多步骤注册页面的最佳 ViewController 是什么?

c++ - 目录结构 - 文件和文件夹类应该相互了解吗?

class - 为什么 Scala 已经有了特性,它还有类?