我想用segue在两个视图之间传递UIImage。问题是我的UIImage在第二个视图控制器中显示为白色。用segue传递UIImage
的赛格瑞:
var screenShot = UIImage()
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "screenshotEmbed") {
let svc = segue.destinationViewController as! screenshotViewController
svc.toPass = self.screenshot
}
的secondViewController:
class screenshotViewController: UIViewController {
@IBOutlet var screenshotView: UIImageView!
var toPass = UIImage()
override func viewDidLoad() {
super.viewDidLoad()
self.screenshotView.image = self.toPass
}
}
我的UIImage只是一个截图,这里的功能:
func captureScreen() -> UIImage {
var window: UIWindow? = UIApplication.sharedApplication().keyWindow
window = UIApplication.sharedApplication().windows[0]
UIGraphicsBeginImageContextWithOptions(window!.frame.size, window!.opaque, 0.0)
window!.layer.renderInContext(UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image;
}
编辑。上的按钮截图存储:
@IBAction func photoAction(sender: AnyObject) {
self.screenShot = captureScreen()
}
我试过很多的事情,但还是空白(非空事业内存ADRESS是好的)。
screenshotImage是一个河畔的UIImage。这很奇怪。如果我做svc.toPass = capture()它也可以..但我必须在screenshotImage上存储。我将使用screenshoteImage存储编辑帖子 – Makaille
您的'screenshotImage'对象具有任何图像? –
不错,这是我的IBAction(我存储screenShot)的问题是在AnyObject上,而不是在UIbutton上。我认为它仍然很奇怪,但现在它的工作... – Makaille