请告诉我如何从View Controller B中更改ViewController A中的UIImageView图像?
我的Xcode版本是Xcode 7,带有Swift 2.0,
谢谢。
答案 0 :(得分:0)
作为thefredelement,您可以使用NSNotification
,就像在ViewController中一样,只需在解除对ViewController A的视图时添加此代码:
@IBAction func goBack(sender: AnyObject) {
NSNotificationCenter.defaultCenter().postNotificationName("refresh", object: nil)
self.dismissViewControllerAnimated(true, completion: nil)
}
在您的viewController A中,在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.
}
现在,当您从ViewController B按下按钮时,它将从ViewController A。
调用此方法注意:我已经使用Xcode 6.4进行了测试,我认为它也适用于Xcode 7。
答案 1 :(得分:0)
在Swift 4中
第一个View Controller
@IBOutlet weak var imageView: UIImageView! // ImageView
func goToImageChooserClass () {
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let secondVC = storyBoard.instantiateViewController(withIdentifier: "SecondVC") as! SecondVC
secondVC.firstVC = self // Object in 2nd Controller that is a FirstVC Object
self.present(secondVC, animated:true, completion:nil)
}
第二视图控制器
class SecondVC {
...
var firstVC:FirstVC! // Object representing the firstVC
...
func goBack (){
self.dismiss(animated: true, completion: {
self.firstVC.imageView = {insert your image here}
})
}
}
答案 2 :(得分:-3)
以下是您使用NSUserDefaults
你这样写:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(image!, forKey: "image")
并且如下所示:
let defaults = NSUserDefaults.standardUserDefaults()
let image = defaults.objectForKey("image") as! UIImage
并将其设置为imageView