将variables从一个Swift类传递给另一个类的最佳方法是什么?
假设我在一个类ViewController
定义了variables,并想从另一个类访问该variables,比如说BLEHandler
。 我该如何去做呢? 我遇到了NSUserDefaults
麻烦,所以除此之外的方法将不胜感激。
有可能你可以在viewControllers之间传递值的方法例如
- PrepareForSegue
- NSNotificationCenter
- 代表
- 独生子
不同的方式在不同的情况下使用。
如果您使用prepareFoSegue – 在执行segue时想要通过时使用
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { //Use below to get reference,so that you can pass value //segue.destinationViewController //segue.sourceViewController }
如果使用通知中心 – 盲通知,一个vc发送消息,可能多个接收。 在发送消息vc
NSNotificationCenter.defaultCenter().postNotificationName(, object: )
在接收消息vc先注册
NSNotificationCenter.defaultCenter().addObserver(, selector: , name: , object: )
比你从select器得到的价值
不要忘记删除
NSNotificationCenter.defaultCenter().removeObserver(, name: , object: )
如果您使用委托 – 接收者和发件人首先有一个连接。 有关于此的post,我不会举例。
如果你使用单身 – 你必须清楚单身人士的生活圈。 我不build议通过这种方式来传递价值。
别担心
var firstmyvar = "Any" let secondview = self.storyboard?.instantiateViewControllerWithIdentifier("secondview") as SecondViewController secondview.myvar = firstmyvar self.presentViewController(secondview, animated: false, completion: nil)
一种方法是在应用程序委托中创build一个variables。 它的全局到你的视图控制器。
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate let aVariable = appDelegate.someVariable