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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

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

Q&A

解決済

1回答

332閲覧

Value of type 'VIVOCameraViewController' has no member 'setImage'に関するエラー

KENTAROBALE

総合スコア13

Swift

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

0グッド

0クリップ

投稿2019/04/18 05:41

前提・実現したいこと

ボタンをタップしたらカメラが起動し写真を撮って次の画面でimageViewに撮った写真を表示したい

発生している問題・エラーメッセージ

Value of type 'VIVOCameraViewController' has no member 'setImage'

Use of undeclared type 'PhotoConfirm'

該当のソースコード

import UIKit class VIVOCameraViewController: UIViewController { @IBAction func camera(_ sender: UIButton) { let sourceType:UIImagePickerController.SourceType = UIImagePickerController.SourceType.camera if UIImagePickerController.isSourceTypeAvailable(UIImagePickerController.SourceType.camera) { // カメラを起動 let cameraPicker = UIImagePickerController() cameraPicker.sourceType = sourceType cameraPicker.delegate = self as? UIImagePickerControllerDelegate & UINavigationControllerDelegate self.present(cameraPicker, animated: true, completion: nil) } else { print ("カメラ立ち上げのエラー") } } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { if let image = info[.originalImage] as? UIImage { self.setImage = image picker.dismiss(animated: true, completion: nil) //写真confirm画面へ遷移 self.performSegue(withIdentifier: "photoConfirm", sender: self) } else { picker.dismiss(animated: true, completion: nil) } } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "PhotoConfirm" { let photoConfirm: PhotoConfirm = segue.destination as! PhotoConfirm photoConfirm.image = self.setImage! } } @IBOutlet weak var confirmPhotoView: UIImageView! var image: UIImage? = nil override func viewDidLoad() { super.viewDidLoad() self.confirmPhotoView.image = self.image } }

試したこと

http://swift-labo.net/2016/12/09/159/
上記のサイトを参考にそのままコピペした状態。

記述した文を大まかにしか理解できていないため
エラー文を調べて同じような質問をしている方がいたが解決できなかった。

自分でも調べますが、解決法ご存知の方がいらっしゃいましたらご教授のほど、よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

setImageはVIVOCameraViewController内のUIImage型のプロパティです。
PhotoConfirmは遷移先のViewControllerです。

参考記事はコードの一部しか書かれていませんので、上記のどちらも自分で用意して下さい。

投稿2019/04/18 05:53

fuzzball

総合スコア16731

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

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

KENTAROBALE

2019/04/18 08:06 編集

返答いただきありがとうございます。 var setImage = UIImage() を宣言してsetimageの方を解決できました。 PhotoConfirmの方が let PhotoConfirm = 遷移先のViewControllerにつけたclass名() を宣言しても解決できないのですが、解説お願いできますでしょうか?
fuzzball

2019/04/18 07:54

コメント欄はMarkdownを使えないので ``` は使えません。(逆に見にくいので編集して下さい) 「用意する」といっても色々あるんですよ。 遷移先のViewControllerはすでに用意されているようなので、あとは「PhotoConfirm」をそのクラス名に置き換えればいいです。 photoConfirm(頭小文字)の方はインスタンス名なので好きな名前にすればいいです。(しなくてもいいですが、分かりにくいだけです) ここまでやってもまだエラーが出たり正しく動作しないと思います。 参考記事ににも間違いがあるようなので、記事のコードは正しいという思い込みは捨てた方がいいです。
KENTAROBALE

2019/04/18 08:43

ありがとうございます。 確かにエラーが出て止まりました。 記事のコード=正しいという解釈は捨てて、とりあえず基本言語の勉強してから 他の記事も漁って解決したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問