ios - 使用 segue 传递 UIImage

标签 ios swift uiimage segue

我想在带有 segue 的两个 View 之间传递一个 UIImage。问题是我的 UIImage 在第二个 View Controller 中显示为白色。

继续:

var screenShot = UIImage()

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "screenshotEmbed") {
        let svc = segue.destinationViewController as! screenshotViewController
        svc.toPass = self.screenshot
    }

第二个 View Controller :

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()
}

我已经尝试了很多东西,但仍然是空白(不是空的,因为内存地址很好)。

最佳答案

不确定您的 screenshotImage 对象是否有 Image。

我试过下面的代码,它工作正常。

import UIKit

class ViewController: UIViewController {

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if (segue.identifier == "screenshotEmbed") {
            let svc = segue.destinationViewController as! ScreenshotViewController
            svc.toPass = captureScreen()
        }
    }

    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;
    }

}

此代码的结果:

enter image description here

项目 Sample了解更多信息。

关于ios - 使用 segue 传递 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36918115/

相关文章:

objective-c - 使用 .zip 扩展名在 Mobile Safari 中从 url 打开应用程序失败

iphone - 我将如何在首次运行时呈现特定区域的 map View ?

ios - 启用后,UIBarButtonItem标题颜色将显示为浅灰色

swift - 解析... query.getObjectInBackgroundWithId

swift - SKSpriteNode 未显示

ios - 加载远程图像破坏了 JSQMessagesAvatarImageFactory

ios - 轮询异步任务,然后等待 1 次成功或所有响应都被拒绝

swift - 通过NotificationHub向特定设备或用户发送推送通知

ios - 合并两个透明图像而不丢失透明度

ios - 如何从 UIImage 获取极值点