私は自分のデバイスに画像を保存して、次のView Controllerに渡してプレビューすることができます。私が人々がこれをやっているのを見る方法は、彼らが撮ったイメージをuiimageに保存することです。その後、prepareforsegueの間、それらは、デスティネーションビューコントローラ内のuiimage変数を、以前のビューコントローラで取った写真に設定します。そこからdest viewのコントローラーから、次のように画像を表示する人が表示されます:imageName.image = imageVariable。変数をデスティネーションビューコントローラに渡し、次のビューコントローラに表示しようとすると、ゼロ値として表示されます。どこが間違っていますか?画像を撮って別のUIViewController Swift 3.0に渡す
初のViewController:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "ToDetailPage" {
let nextScene = segue.destination as! PostDetailPageViewController
nextScene.itemImage = self.image
// nextScene?.myimg.image = self.image
}
}
@IBAction func TakePhotoButtonClicked(_ sender: AnyObject) {
if let videoConnection = sessionOutput.connection(withMediaType: AVMediaTypeVideo){
sessionOutput.captureStillImageAsynchronously(from: videoConnection, completionHandler: {
buffer, error in
let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(buffer)
self.image = UIImage(data: imageData!)
UIImageWriteToSavedPhotosAlbum(UIImage(data: imageData!)!, nil, nil, nil)
})
}
}
第二のViewController:
var itemImage: UIImage!
@IBOutlet weak var myimg: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.categories.dataSource = self;
self.categories.delegate = self;
setUpMap()
myimg.image = itemImage
}
'prepare(for segue:)'に 'self.image'はありませんか? – Ryan
@ Ryan ok yeaそれはなぜその価値がないのかを説明するでしょう。 prepareforsegueのそのnil!任意のアイデアなぜtakephotobuttonclickedメソッドで画像を格納していないのですか? –
'sessionOutput.captureStillImageAsynchronously'ブロックはどうですか?何かエラーがありましたか?ブロック内の 'self.image'は非nilですか? – Ryan