2017-10-30 2 views
0

3 개의보기 컨트롤러가 있습니다. 첫 번째 문자는 UIimageview이고, 두 번째 문자는 customCameraViewController이고 두 번째 문자는 previewController입니다. 응용 프로그램이 첫 번째 컨트롤러에서 시작되고 사용자가 사진을 캡처 한 후 customCameraViewController으로 이동하는 단추가있는 경우 previewController으로 전달하여 사진 저장 또는 취소를 결정합니다. 사용자가 사진을 저장하는 경우 세그를 사용하여 uiimage을 다시 전달하고 첫 번째 컨트롤러에 표시합니다.이미지보기에 이미 이미지가있을 때 이미지 및 디스플레이 통과하기

uiimageView가 이미 "기본 프로필 사진"으로 설정되어 있습니다. 사용자가 응용 프로그램을 열 때이 문제를 어떻게 해결할 수 있습니까? 그것은 "기본 사진"을 표시 한 후 사진을 캡처하고 firstViewController로 다시 전달하고 "캡처 사진"

를 표시 FirstviewController

var image:UIImage! 


override func viewDidLoad() { 
     super.viewDidLoad() 


if imageView.image == nil{ 
    print("nothing") 
    imageView.image = UIImage(named: ("defaultPhoto")) 
}else if imageView.image == UIImage(named: ("defaultPhoto")) && imageView.image != nil{ 
    print("have image") 
    imageView.removeFromSuperview() 
    imageView.image = image 
} 
} 

PreviewViewController

class PreviewViewController: UIViewController { 

    var image: UIImage! 

    @IBOutlet weak var photoPic: UIImageView! 

    @IBAction func cancelAction(_ sender: Any) { 
    dismiss(animated: true, completion: nil) 
    } 
    @IBAction func saveAction(_ sender: Any) { 

    self.performSegue(withIdentifier: "savePicSegue", sender: nil) 
    } 
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if segue.identifier == "savePicSegue" { 
     let destinationVC = segue.destination as! FirstViewController 
     destinationVC.image = self.image 
     } 

    } 
+0

예를 들어 디스크에 사진을 저장하면 앱을 열 때마다 사진을 찍어 다시 넣습니다. – kirander

+0

더 나은 설명이 없으면, 이것은 나에게보기 및보기 컨트롤러 "수명주기"문제가 있다고 들립니다. 'viewWillAppear'에서 이미지 업데이트를 시도 했습니까? – dfd

+0

@dfd 시도했지만 작동하지 않습니다. –

답변

-1

FirstviewController viewDidLoad 논리 업데이트 :

if image == nil { 
    imageView.image = UIImage(named: ("defaultPhoto")) 
} else { 
    imageView.image = image 
} 
+0

나는이 대답에 대해 투표를하지 않을까합니다. OP는 * 사진을 캡처하여 첫 번째 ViewController ...로 다시 전달합니다 * 분명히 **는 viewDidLoad에서 발생하지 않습니다. (두 번째 생각에 나는 다운 투표를했는데, 문제의 * 구체적인 내용에 어떻게 대답합니까?) – dfd

+0

@dfd, PreviewViewController의 prepareForSegue 기능을 살펴보십시오. 나는 OP가 FirstViewController "destinationVC.image = self.image"의 이미지 변수에 필요한 이미지를 전달하는 것을 본다. 따라서 OP가 "presentModaly"segue를 사용하면 내 대답이 작동합니다. 이 코드가 viewWillAppear func을 가져올 필요가있는 또 다른 방법은 있지만 OP가 viewDidLoad에서 사용하는 코드는 아닙니다 ... – Dmitry

관련 문제