Swift 将图像从一个视图控制器传递到另一个控制器会给出零
我正在尝试向预览控制器发送图像,如下所示。我的问题是,预览控制器中的Swift 将图像从一个视图控制器传递到另一个控制器会给出零,swift,uiviewcontroller,segue,Swift,Uiviewcontroller,Segue,我正在尝试向预览控制器发送图像,如下所示。我的问题是,预览控制器中的newImage是nil 代码如下: FirstViewController override func prepare(for segue: UIStoryboardSegue, sender: Any?) { print("In here") if segue.identifier == "showImage" { let secondViewController = self.storyb
newImage
是nil
代码如下:
FirstViewController
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("In here")
if segue.identifier == "showImage" {
let secondViewController = self.storyboard!.instantiateViewController(withIdentifier: "showImage") as! showImageController
secondViewController.newImage = UIImage(named: imageArray[0])
}
}
@IBOutlet weak var imageHolder: UIImageView!
var newImage: UIImage!
override func viewDidLoad() {
super.viewDidLoad()
imageHolder.image = newImage
// Do any additional setup after loading the view.
}
预览控制器
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("In here")
if segue.identifier == "showImage" {
let secondViewController = self.storyboard!.instantiateViewController(withIdentifier: "showImage") as! showImageController
secondViewController.newImage = UIImage(named: imageArray[0])
}
}
@IBOutlet weak var imageHolder: UIImageView!
var newImage: UIImage!
override func viewDidLoad() {
super.viewDidLoad()
imageHolder.image = newImage
// Do any additional setup after loading the view.
}
InstanceEviewController调用viewDidLoad(),这样在调用映像时就不会设置映像。将代码移动到viewWillExample(),它就会工作您应该使用
segue.destination
而不是像这样创建一个新的
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("In here")
if segue.identifier == "showImage" {
let next = segue.destination as! showImageController
next.newImage = UIImage(named: imageArray[0])
}
}