在控制器Swift之间传递对象

穆罕默德

我有一个故事板,从登录页面开始。我有一个像这样的User类

class User {
    // Properties
    var firmCode : String
    var firmId : String
    var userId : String

    // Default Initializer
    init() {
        self.firmCode = ""
        self.firmId = ""
        self.userId = ""

    }

    // Defult Initializer with prams
    init(firmCode: String, firmId: String, userId: String) {
        self.firmCode = firmCode
        self.firmId = firmId
        self.userId = userId
    }


}

我正在登录页面中生成一些值,并且可以使用这些值创建User对象。

现在,我想使该对象成为全局对象,并在所有场景中使用该用户对象。

如何将这个物体传递到其他场景?例如,我想将此值与对象一起传递给这样的嵌入式静态表视图控制器

在此处输入图片说明

注意:嵌入控制器有一个标签栏控制器有关系吗?我想我需要使用我的委托文件?

编辑:

现在,我创建了这样的全局对象:

// test value
let firmId = "Company Id"

// Creating user object without user class declaration
NSUserDefaults.standardUserDefaults().setObject(firmId, forKey: "testFirmId")

并试图让我的对象是这样的:

// Creating user variable in other scene by globally
let getValue : AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("testFirmId")

// checking
println(getValue!)

并完成,返回我在Termanal上的价值。一切工作到此为止。

But now the value return to me as AnyObject, I need the convert it String to apply like this:

someLabel.text = getValue!
Dharmesh Kheni

You can use NSUserDefaults for that like you can store your object this way:

NSUserDefaults.standardUserDefaults().setObject(YourObject, forKey: "YouKey")

After that you can access it in any scene like:

let yourObject: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("YouKey")

Hope It will help you.

EDIT:

NSUserDefaults is limited in the types it can handle: NSData, NSString, NSNumber, NSDate, NSArray, and NSDictionary. Thus no Swift objects or structs can be saved.

From the Apple NSUserDefaults Docs:

A default object must be a property list, that is, an instance of (or for collections a combination of instances of): NSData, NSString, NSNumber, NSDate, NSArray, or NSDictionary. If you want to store any other type of object, you should typically archive it to create an instance of NSData.

如果正在使用,NSUserDefaults则可以直接存储实例,如下所示:

NSUserDefaults.standardUserDefaults().setObject(test, forKey: "firmCode")
NSUserDefaults.standardUserDefaults().setObject(test, forKey: "firmId")
NSUserDefaults.standardUserDefaults().setObject(test, forKey: "userId")

您不需要为此的模型类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我想在 swift 中的视图控制器之间传递用户对象类型的实例

使用相同的标签栏控制器Swift 3在视图之间传递对象数组

AngularJS服务-在视图/控制器之间传递对象

在Swift 4中的视图控制器之间传递数据

Swift 3在视图控制器之间传递数据

在Swift中的视图控制器之间传递数据

在Swift中的控制器之间传递数据

在控制器之间传递数据

在AngularJs的控制器之间传递数据

AngularJS:在控制器之间传递参数

在视图控制器之间传递数据

CakePHP在控制器之间传递值

AngularJS:在控制器之间传递参数

在视图控制器之间传递数据

Kohana-在控制器之间传递ORM对象的最佳方法?

在Alloy控制器之间传递的Backbone Model对象具有空属性

如何在准备中的视图控制器之间通过引用传递 swift 数组(对于 segue:?

iOS/Swift 3:在非连续视图控制器之间向后传递数据

在Swift中更改VC问题。如何在标签栏控制器的视图之间传递数据?

Swift-在视图控制器之间传递布尔值

Swift:在视图控制器之间传递Facebook登录图请求结果

如何以编程方式创建segue以在视图控制器之间传递信息-Swift

在Swift中的视图控制器之间传递数据不起作用

方法完成后在控制器之间传递数据 [SWIFT]

在Swift中的视图控制器之间传递数据(从TableView到DetailViewController)

iOS Swift-使用容器视图在视图控制器之间传递数据

视图控制器之间传递数据的差异

未在视图控制器之间传递NSURL

AngularJS:如何在控制器之间传递变量?