从另一个视图控制器Swift 2.0中更改视图控制器图像
您能否告诉我如何从View Controller B更改ViewController A中的UIImageView的图像?从另一个视图控制器Swift 2.0中更改视图控制器图像
我的Xcode版本是Xcode 7,使用Swift 2.0,
谢谢。
正如thefredelement你可以在你的ViewController B之间使用NSNotification
对于像刚才添加的代码,当你解雇视图的ViewController答:
@IBAction func goBack(sender: AnyObject) {
NSNotificationCenter.defaultCenter().postNotificationName("refresh", object: nil)
self.dismissViewControllerAnimated(true, completion: nil)
}
而在你的viewController一个在你的viewDidLoad
方法添加以下代码:
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "refreshList:", name:"refresh", object: nil)
}
而且在同一个类中添加这个辅助方法:
func refreshList(notification: NSNotification){
println("parent method is called")
//you can change your UIImageView's Image here.
}
现在,当你永远从视图控制器B按下按钮,它会调用从视图控制器A.此方法
注:我已经和Xcode 6.4测试这一点,我认为它会正常工作和Xcode 7太多。
还有一个问题,我如何保存settin克的壁纸? –
我没有找到你 –
因此,在我更改背景图像后,如何使用NSUserDefaults保存将保留在该图像上的数据? –
这里是你如何与NSUserDefaults
的工作,你这样写:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(image!, forKey: "image")
,读这样的:
let defaults = NSUserDefaults.standardUserDefaults()
let image = defaults.objectForKey("image") as! UIImage
,并将其设置为imageView
你为什么添加这个答案?这个问题甚至没有涉及到这个问题,你还没有格式化代码,而且你碰到了一个超过一年的问题,它已经有了一个可以接受的答案。不要这样做。 – Fogmeister
这是一个不好的解决方案。为了能够在另一个视图中获取图像,将图像保存到磁盘不是最优的,要有礼貌。 – Moritz
你可以使用NSNotification –