質問をすることでしか得られない、回答やアドバイスがある。

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

ただいまの
回答率

90.48%

  • Swift

    7468questions

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

  • iOS

    4084questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • iPhone

    997questions

    iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

【swift初心者】宣言について

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 156

Sue1215

score 2

swift初心者です。

現在、画面のimageViewをタップするとカメラが起動し写真を取り、ボタンを押すと先程の画面に戻り、imageViewには取った写真が映るようにしたいと思っています。 
var aaa = aPicture.imageというのが撮影した画像の取得のコードだとしてAViewControlerに書いたとします。
前の画面のimageViewに写真を渡したいのでBViewControllerにimageView.image = aaaと書くとエラーになります。(Use of unresolved identifier 'aaa')

このように違うViewControllerで宣言したものは違うViewControllerではつかえないのでしょうか。

またBでこのようにしてカメラを起動しています。
/// カメラ起動
private func exeStartCamera() {
LR.log(.info, className, .start, msg: "")

if !isCameraOn {
exeSetupCamera()
isCameraOn = true
} else {

ivLicense.image = nil

let setting = AVCapturePhotoSettings()
setting.flashMode = .auto
setting.isAutoStillImageStabilizationEnabled = true
setting.isHighResolutionPhotoEnabled = false

myImageOutput?.capturePhoto(with: setting, delegate: self)
isCameraOn = false
}

よろしくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • koogawa

    2018/04/13 09:06

    そうではなく、カメラを起動したBからAにどのように遷移していますか?という質問だと思います。

    キャンセル

  • koogawa

    2018/04/13 09:07

    ご自身で「ボタンを押すと先程の画面に戻り」と仰っているので、画面遷移はしていますよね?

    キャンセル

  • Sue1215

    2018/04/13 09:08

    popで戻っている形です。

    キャンセル

回答 1

checkベストアンサー

0

「このように違うViewControllerで宣言したものは違うViewControllerではつかえないのでしょうか。」
最初の質問内容の回答としては変数aaaはAViewControlerのクラス変数なので異なるBViewControllerでは使えないと思います。

また「質問への追記・修正の依頼」の内容から考えますと、画面遷移をされていないのでしたらカメラ撮影から戻ってきた際にdidFinishPickingMediaWithInfoで値を設定すれば良いのかと思うのですが、やりたいことと異なっていますでしょうか?

参考記事:
https://i-app-tec.com/ios/camera.html

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/13 09:23

    UIImagePickerControllerを使わずにカメラを起動しています、、

    キャンセル

  • 2018/04/13 09:30

    もう少し詳しく教えていただけますでしょうか、、

    キャンセル

  • 2018/04/13 09:32

    AVCapturePhotoOutputの方でしたか、失礼しました。
    BViewController にUIImageを保持する変数を設定し、popで戻って来る際に取得したUIImageを設定するという方法はいかがでしょうか?

    キャンセル

  • 2018/04/13 09:35

    すみません。UIImagePickerControllerを使用しています。上のコメントは削除依頼しております。
    その方法を試してみたいです。しかし詳しくどうしたらいいのかわかりません、、

    キャンセル

  • 2018/04/13 09:36

    UIImagePickerControllerを使用する場合ですと、カメラでの撮影が完了した(決定した)際にUIImagePickerControllerDelegateのメソッドの中のdidFinishPickingMediaWithInfoが呼ばれますので、そこれUIImageを作成し、UIImageViewに設定できる、ということです。詳しくは参考記事のサイトをご参照ください。

    キャンセル

  • 2018/04/13 09:37

    ちなみにimageが一時保存できるよう、UserDefaultsも設定してみましたが、必要でしょうか?
    /// image型拡張保存
    func setImageView(forKey key: StringKey) {
    let key = namespaced(key)
    UserDefaults.standard.set(true, forKey: key)
    UserDefaults.standard.object(forKey: key)
    }

    キャンセル

  • 2018/04/13 09:41

    参考サイトの//写真を保存というところからということでしょうか?
    あと、BVCにあるimageViewでの処理はAVCで書くということでしょうか、、?

    キャンセル

  • 2018/04/13 09:56

    「ちなみにimageが一時保存できるよう、UserDefaultsも設定してみましたが、必要でしょうか?」
    例えば、アプリが一度終了して再起動したあとも再度表示したい(けど、永続的に保存する必要はない)などがあるならば必要だとは思います。

    「参考サイトの//写真を保存というところからということでしょうか?」
    // 撮影が完了時した時に呼ばれるのところでpickedImageがUIImageになるのでそれをImageViewに設定すればよいのかなと思います。

    「BVCにあるimageViewでの処理はAVCで書くということでしょうか」
    それで良いと思います。AVC内で全て完結できるようになるので、BVCは不要になるはずです。

    キャンセル

  • 2018/04/13 10:27

    わかりやすくありがとうございます。
    なんとなくイメージが出来てきました。
    ただ問題があって、厳密にはAVCがカメラを起動したときのVC(カメラビュー、カメラのボタンやシャッターを切るなど)で、BVCがその前の画面のVC(情報のまとめがある為、そのひとつとしてimageViewがある)です。調べたところ、UIImagePickerControllerはBVCのほうに書かれていてAVCには書かれていないのですが、どうしたらいいでしょうか、、?

    キャンセル

  • 2018/04/13 11:04

    参考記事を元に考えると、BVCで行なっていたUIImagePickerControllerの処理は全てAVCで行われるために不要になります。
    「BVCがその前の画面のVC(情報のまとめがある為、そのひとつとしてimageViewがある)です。」
    最終的にカメラの画像を表示したいのはBVCですか?だとしましたら、私が勘違いをしていて逆にAVCが不要になり、BVCの中で参考記事の処理を追加していけば良いのかと思います。

    仮にAVCが必要な理由がある場合、上記にご記載のようにUserDeafultsで画像を保存しているのでしたらそこからデータを取得してBVCのimageViewに設定できると思います。

    キャンセル

  • 2018/04/13 11:13

    なるほど。わかりました。
    UserDeafultsについて詳しく調べてみます。
    ありがとうございました。

    キャンセル

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

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    swiftUIButtonのCustom Classに関して

    swiftでUIButtonのCustom Classを作成して、それをstoryboardを使わずに表示しようとしているのですができません。(storyboardを使用したときは

  • 受付中

    iosアプリ開発(Swift使用)について質問です。

    アプリ上で携帯端末内に保存されている画像一覧を開いてそれを選択した時に、その画像のURL(sample.png的な)を取得する方法を教えてください。

  • 解決済

    swiftでのランダムでの画像の表示の仕方

    swiftでじゃんけんのアプリを作っているのですが、ランダムで画像を表示する方法がわかりません。 質問がざっくりしてしまっていて申し訳ないですが、どのように質問すればよいかもわから

  • 解決済

    swift UISwipeGesture

    今同じViewControllerにScrollViewで3画面あってその3画面にImageViewが1枚づつあります。 その3枚目のImageViewにUISwipeGes

  • 解決済

    swift ScaleAspectFill

    画像の表示形式について質問です。 現在ImageViewの領域いっぱいに画像を表示させたくて、 ScaleAspectFillを指定しているのですが、 画像の上側をはみ出ない

  • 解決済

    [Swift]リスト表示で、先頭に丸型の画像を表示させたいのですが。

    [Swift]リスト表示で、先頭に丸型の画像を表示させたいのですが。 Lineの一覧表示画面のように、丸型の画像を一覧の左に表示させたいのですが、 画像の変更方法がわかりません

  • 受付中

    unexpectedly found nil while unwrapping an Optiona...

    下の画像の右がContainerViewで左がViewControllerです。Embedでつないであります。 右の画面で動的に作ったボタンを押した時、左の画面に画像を表示したい

  • 受付中

    カメラアクセスと写真のアップロードができない

    作ったアプリでカメラアクセスと写真のアップロードができません。 Xcodeから自分のiPhoneでエミュレータを起動したのですが Camera access ボタンとPhoto

同じタグがついた質問を見る

  • Swift

    7468questions

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

  • iOS

    4084questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • iPhone

    997questions

    iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。