我有一个主viewController,它可以分割成一个settingsViewController。在settingsViewController中按下我想要的按钮,以更改主viewController的背景颜色。我如何在Swift中执行此操作?
谢谢。
答案 0 :(得分:0)
好的,在settingsViewController中设置颜色并在其他视图控制器中检索颜色的一种方法是使用NSUserDefaults。将key的对象设置为所需的颜色,然后使用NSUserDefaults在其他视图中访问它。 NSUserDefaults仍然存在,因此您不必担心保存它,因为它已经被系统保存。 NSUserDefaults不适合大量数据,但它适用于简单的设置,如颜色。您只能将plist对象设置为NSUserDefaults(即。字符串,Ints,NSData等...),因此您必须使用NSKeyedArchiver将颜色打包为NSData或单独存储RGB颜色值
// In your settings view controller
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(NSKeyedArchiver.archivedDataWithRootObject(UIColor.blueColor()), forKey: "color")
// In your other view controller's viewDidLoad (most likely)
let defaults = NSUserDefaults.standardUserDefaults()
if let data = defaults.objectForKey("color") as? NSData {
if let colorFromData = NSKeyedUnarchiver.unarchiveObjectWithData(data) as? UIColor {
homeCollectionView.backgroundColor = colorFromData
}
}