🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1227閲覧

アプリ再起動後に黒い画面が表示される

hkbto

総合スコア14

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/11/05 06:43

編集2019/11/05 09:55

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) } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takabosoft

2019/11/05 07:24

ソースが無いので当てずっぽうですが、③あたりでなんらかの情報を端末に保存(もしくは読み込み)する処理はしていませんか?それが次回実行時(⑧番)でうまく動かない要因になっているとか・・・
hkbto

2019/11/05 09:56

一部省略していますが、ソースを追加しました。 端末に情報を保存するような処理入れていないつもりですがどうでしょうか...?
hkbto

2019/11/05 12:24

補足ですが、実機テストの時のみ起きる事象のようで、シミュレータを使用した場合は再現できませんでした
guest

回答1

0

カメラへのアクセスを行う際permissionが必要だったと思います。
info.plistにpermissionを入れてみてください
https://qiita.com/peka2/items/9a3f1b92cb4f88064b89

投稿2019/11/10 14:14

harumi

総合スコア407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問