2016-04-28 3 views
0

私はsegueで2つのビューの間にUIImageを渡したいと思います。問題は、私のUIImageが2番目のView Controllerで白く表示されることです。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:

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

EDIT:

class screenshotViewController: UIViewController { 

@IBOutlet var screenshotView: UIImageView! 
var toPass = UIImage() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.screenshotView.image = self.toPass   
} 

}

私のUIImageはここだけで、スクリーンショット、機能です。ボタン上のスクリーンショットストレージ:私は事の多くを試してみたが、まだ空白(空でない原因メモリアドレスが良いです)

@IBAction func photoAction(sender: AnyObject) { 
    self.screenShot = captureScreen() 
} 

答えて

1

screenshotImageオブジェクトに画像があるかどうかわかりません。

以下のコードを試してみましたが、うまくいきました。このコードで

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。 2番目のシーンで

+0

screenshotImageはシュルためUIImageである()UIImageに画像を初期ため、2番目のシーンで

var toPass: UIImage! 

にプロパティを変更しなければなりません。それは変だ。もし私がsvc.toPass = capture()を実行してもそれは動作しますが、私はscreenshotImageに保存しました。私はscreenshoteImageの記憶装置で投稿を編集します – Makaille

+0

あなたの 'screenshotImage'オブジェクトにはイメージがありますか? –

+0

いいえ、それは私のIBAction(私はscreenShotを格納する)問題は、AnyObject上であったUIbuttonではなかった。私はそれがまだ変だと思うが、それは今働いている... – Makaille

関連する問題