iOSアプリ開発をしています。
カメラロールから画像を読み込んで表示させるだけの簡単なアプリを作っているのですが、うまくいかず、ログもでないので原因がわかりません。
症状は以下の通りです。
①トップ画面のボタンをクリック
②カメラロールから写真を選択する
③表示画面で写真が表示される
④ホームボタンを押してホームに戻り、上にスワイプしてアプリを終了させる
⑤再度アプリを起動する
⑥トップ画面のボタンをクリック
⑦カメラロールから写真を選択する
⑧表示画面が表示されたあとすぐに黒い画面が表示され、操作不可能となる(充電のゲージだけ表示されています)
この場合、どのような原因が考えられるでしょうか?
トップ画面から表示画面への遷移はsegueを使用しています。
よろしくお願いします。
///////////////// //トップ画面 ///////////////// class ViewController: UIViewController { @IBOutlet weak var imageView:UIImageView! @IBOutlet var button: UIButton! override func viewDidLoad() { super.viewDidLoad() //背景画像 imageView.image = UIImage(named:"background.png") } } ///////////////// //表示画面 ///////////////// class MainViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource { @IBOutlet weak var imageView:UIImageView! @IBOutlet var beforeButton: UIButton! @IBOutlet var afterButton: UIButton! @IBOutlet weak var beforeText: UILabel! @IBOutlet weak var afterText: UILabel! //使用変数 var uiImage:UIImage! var uiImage_bk:UIImage! var methodValue=0 //フラグ var image_flg = false override func viewDidLoad() { super.viewDidLoad() //画像読込 if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) { // 写真を選ぶビュー let photoView = UIImagePickerController() // 写真の選択元をカメラロールにする // 「.camera」にすればカメラを起動できる photoView.sourceType = .photoLibrary // デリゲート photoView.delegate = self // ビューに表示 self.present(photoView, animated: true) } } } extension MainViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate { // 写真を選んだ後に呼ばれる処理 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { if isProcessing == false { isProcessing = true //画像サイズ let IMAGE_MAX_SIZE = 1000.0 // 選択した写真を取得する let tmpImage = info[.originalImage] as! UIImage //let Resize:CGSize = CGSize.init(width: tmpImage.size.width, height:tmpImage.size.height) var tmpSize = Double(tmpImage.size.width) if(Double(tmpImage.size.width) > IMAGE_MAX_SIZE || Double(tmpImage.size.height) > IMAGE_MAX_SIZE){ if(tmpImage.size.width >= tmpImage.size.height){ tmpSize = IMAGE_MAX_SIZE }else{ tmpSize = IMAGE_MAX_SIZE*Double(tmpImage.size.width/tmpImage.size.height) } } // ビューに表示する let resize_tmpImage:UIImage = resize(image: tmpImage,width: floor(tmpSize)) let result = UIImage(cgImage: RBGImage(data: pixels, width: Int(resize_tmpImage.size.width), height:Int(resize_tmpImage.size.height))!) uiImage = result uiImage_bk = result imageView.image = result if(uiImage.size.width>0){ image_flg = true } // 写真を選ぶビューを引っ込める self.dismiss(animated: true) } } }