내 장치에 이미지를 저장하려고합니다. 미리보기 위해 다음보기 컨트롤러에 전달할 수 있습니다. 내가하는 일을 사람들이 보는 방법은 그들이 가지고있는 이미지를 uiimage에 저장하는 것입니다. 그런 다음 prepareforsegue 동안 대상 뷰 컨트롤러의 uiimage 변수를 이전 뷰 컨트롤러에서 찍은 사진으로 설정합니다. 거기에서 dest 뷰 컨트롤러에서 다음과 같이 이미지를 디스플레이하는 사람들을 볼 수 있습니다 : imageName.image = imageVariable. 변수를 대상보기 컨트롤러에 전달하고 다음보기 컨트롤러에 변수를 표시하려고하면 변수가 0으로 표시됩니다. 내가 어디로 잘못 가고 있니?사진을 찍어 다른 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'가 nonnil입니까? – Ryan
@ Ryan ok yea 그것은 왜 어떤 가치도 지키지 않는 이유를 설명합니다. prepareforsegue에서 그 nil! 어떤 아이디어가 takephotobuttonclicked 메서드에 이미지를 저장하지 않는 이유는 무엇입니까? –
'sessionOutput.captureStillImageAsynchronously' 블록은 어떨까요? 어떤 오류가 있었습니까? 블록의'self.image'는 non nil입니까? – Ryan