각기 다른 사진 앨범을로드하는 PageViewController가 있습니다. 각 사진 앨범은 다른보기 컨트롤러 (album1ViewController ... album3ViewController)에서로드됩니다 (아래 그림 참조). Storyboard로드하는 ViewController의 Detail PageViewController에서 함수를 호출합니다.
각보기 컨트롤러 (album1 ... album3)는 탐색보기 컨트롤러에서로드되어 탐색 막대를로드합니다. 탐색 막대에 카메라 롤 단추를 추가하여이 코드를 ItemVC (이미지를로드하는 코드)에 넣고 PageViewController에서도 추가했지만 저장 버튼을 활성화하지 않았습니다.
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Save", style: .plain, target: self, action: #selector(saveToCameraRoll))
버튼을 프로그래밍 방식으로 추가하는 유일한 방법은 앨범 VC 안에있는 것이라고 생각했습니다. (ItemsVC의 스토리 보드에 막대를 추가하려고했지만 제대로 표시되지 않았습니다.) 하지만 이제는 ItemsViewController의 이미지로 앨범 # ViewController라는 버튼에 SaveToCameraRoll 함수를 호출하려고합니다. 내가 먼저 ItemsVC 안에 함수를 남겨두고 다음과 같이 앨범 VC에서 호출하려고 시도했습니다.
let vc = self.storyboard?.instantiateViewController(withIdentifier: "ItemController") as! ItemViewController
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Guardar en Fotos", style: .plain, target: self, action: #selector(vc.saveToCameraRoll))
그러나 앱이 충돌합니다. 라인에서 I 오류와 충돌 얻을 ALGO 번째 경우
@objc func saveToCameraRoll() {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "ItemController") as! ItemViewController
let imageData = UIImagePNGRepresentation(vc.contentImageView.image!)
let compresedImage = UIImage(data: imageData!)
UIImageWriteToSavedPhotosAlbum(compresedImage!, nil, nil, nil)
}
:
그럼 I이 같은 SaveToCameraRoll 기능을 추가 albumVC에서 시도 : 이 에러unrecognized selector sent to instance 0x7fca05d32e60
let imageData = UIImagePNGRepresentation(vc.contentImageView.image!)
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
이 기능을 추가 할 수있는 방법이 있습니까? 또는 이것을 보관하는 간단한 방법이 있습니까? 감사합니다.