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

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

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

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

Swift

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

Q&A

0回答

403閲覧

【xcode 13.1 Swift5】他のページではできる画面遷移ができません。

rinakimoto1414

総合スコア0

Xcode

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

Swift

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

0グッド

0クリップ

投稿2021/12/14 01:42

前提・実現したいこと

performSegueで画面を遷移したいのですがエラーが出てしまいます。

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

エラーメッセージ

Thread 1: "-[UIImageView setImage:forState:]: unrecognized selector sent to instance 0x142560850"

swift

1ソースコード 2import UIKit 3 4class MyPageViewController: UIViewController { 5 6 let userBGImage = UIImageView() 7 let scrollView = UIScrollView() 8 let editProfileButton = UIButton() 9 10 override func viewDidLoad() { 11 super.viewDidLoad() 12 13 userBGImage.frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: 180) 14 userBGImage.image = UIImage(named: "Stadium") 15 view.addSubview(userBGImage) 16 17 scrollView.frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: view.frame.size.height) 18 scrollView.contentSize = CGSize(width: view.frame.size.width, height: 2000) 19 scrollView.backgroundColor = .clear 20 view.addSubview(scrollView) 21 22 editProfileButton.frame = CGRect(x: view.frame.size.width - 120, y: 100, width: 100, height: 36) 23 editProfileButton.layer.cornerRadius = 18 24 editProfileButton.backgroundColor = .clear 25 editProfileButton.layer.borderColor = FHPink.cgColor 26 editProfileButton.layer.borderWidth = 1 27 editProfileButton.setTitle("Edit Profile", for: .normal) 28 editProfileButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14) 29 editProfileButton.setTitleColor(FHPink, for: .normal) 30 editProfileButton.addTarget(self, action: #selector(editProfile), for: .touchUpInside) 31 scrollView.addSubview(editProfileButton) 32 33 } 34 35 @objc func editProfile(){ 36 performSegue(withIdentifier: "Edit", sender: nil) 37 38 print("success") 39 40 } 41 42 43}

試したこと

UIImageViewに関するエラーのように見えたので一度ImageViewを全て削除してみたりしたのですが同じエラーが出てしまいます。

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

xcodeのバージョンは13.1です。他のページでは問題なくこのやり方で画面遷移ができるのですがなぜかこのページではできません。また関数の中に書かれている[print("success")]だけを関数に入れると問題なく作動します。ご不明な点やもう少し説明が必要な場合はコメントいただけますと幸いです。

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

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

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

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

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

hoshi-takanori

2021/12/14 02:11

いまいち状況が謎なんですが、 ・そのエラーはどのタイミングで出ますか? Edit Profile ボタンを押した時ですか? ・コードで画面を作ってるのに画面遷移は segue (つまり storyboard) なのでしょうか? ・setImage:forState: してるところが見当たりません。しかも UIButton のメソッドなのになぜ UIImageView に対して呼ばれてるんでしょうか?
RinAkimoto

2021/12/16 01:01 編集

ご返信ありがとうございます。 ・エラーはボタンを押した際に出ています。試しにファイルのコードを全て消してstoryboardで物理的にUIButtonを設置してsegueを用いたとても初歩的な遷移を試してみたのですが、全く同じエラーが出てきてしまいました。もしかしたらこのファイルではなく他のファイルのUIImageViewが影響しているのかもしれません。 ・遷移はコードを用いていたのですが同様のエラーが出ていたためsegueでも試していました。 ・ご指摘の通りUIImageViewは全く使っていませんし、一度全てのコードを消して初歩的なボタンだけの繊維を試してみたのですがそれもダメでした。 このエラーが出てから一週間以上が経過していて、clean builderも何度も試したのでエラーの理由が本当にわかりません。
hoshi-takanori

2021/12/17 00:09

遷移先の画面に問題があるのでは?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問