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

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

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

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

Swift

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

Q&A

解決済

1回答

1193閲覧

TextFieldの画面遷移を行いたいがエラーが発生してしまう。

退会済みユーザー

退会済みユーザー

総合スコア0

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/08/22 06:37

編集2019/08/22 06:43

今、TextFieldに打った文字列を次のControllerのLabelに表示させたいと思っています。
前の画面と後の画面での二つでやってもうまくいかなかったので質問させていただきます。

解決したいことは、二つの間の画面遷移のエラーをなくしたいと思っています。

試したことは、segueの識別子をもう一度決め直し、再確認しました。
参考にしたサイトは、https://capibara1969.com/1060/ です。

Swift

1@IBOutlet weak var TextField: UITextField! 2override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 3 if segue.identifier == "SelectNext" { //segueの識別子を"SelectNext"とStoryBoardで決めました 4 let FirstText = segue.destination as! SelectThirdController //行き先決めます 5 FirstText.SecondText = self.TextField.text! //最終的にTalkFifthControllerに画面遷移させたいから複数で経由させる 6 } 7 }

Swift

1 var SecondText = "" 2 @IBOutlet weak var TextField1: UILabel! //受け取るところ 3 4override func viewDidLoad() { 5 super.viewDidLoad() 6 TextField1.text = SecondText 7 // Do any additional setup after loading the view. 8 } 9

解決方法をご教授願います。宜しくお願いします。
エラーメッセージは Terminating app due to uncaught exception 'NSInvalidArgumentException',reason: '-[CA.Controller buttonWithSender:]: unrecognized selector sent to instance 0x7f88adc31e00'です。

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

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

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

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

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

MasakiHori

2019/08/22 06:40

エラーの内容を無意味に省略せずにすべて記載してください
退会済みユーザー

退会済みユーザー

2019/08/22 06:54

MasakiHori様、エラーの内容を省略せずにすべて記載しました。解決方法をご教授願います。
MasakiHori

2019/08/22 07:01

Controllerというクラスがありますか? そのクラスに buttonWithSender(_:) あるいは button(with sender:)というメソッドはありますか? そのメソッドの func の前に @objc を付けるとどうなりますか?
takabosoft

2019/08/22 07:01

他にコンソールには何も出てないですかね? また、このエラーが出るタイミングはAction Segueが実行される時ですかね??それとも何かコードで画面遷移するように書いていますか?
退会済みユーザー

退会済みユーザー

2019/08/22 07:03

takabosoft様、Action Segueが実行される時にエラーが出てきます。コードでは、画面遷移に関してはこのコード以外書いておりません。他にコンソールには何も出てないです。
退会済みユーザー

退会済みユーザー

2019/08/22 07:05 編集

MasakiHori様、buttonWithSender(_:) あるいは button(with sender:)というメソッドはありません。画面遷移に関しては、Main.storyboardでしか書いておりません。
MasakiHori

2019/08/22 07:12

storyboard上で誤って存在しないアクションに接続がなされている可能性があります。IBのインスペクタの丸に→のアイコンで選択中のオブジェクトのコネクションの一覧が見れるので確認してみてください。
退会済みユーザー

退会済みユーザー

2019/08/22 07:22

MasakiHori様、確認いたしましたが、存在しないアクションには接続されていませんでした。
MasakiHori

2019/08/22 07:35

申し訳ない。もう一つ可能性がありました。 button(_ sender:) というメソッドはありますか? あれば @objc または @IBAction を func の前につけてみてください。
退会済みユーザー

退会済みユーザー

2019/08/22 07:37

MasakiHori様、Buttonの方は、コードは書かず、storyboard上で作成しました。そのためにbutton(_ sender:) というメソッドはありません。
MasakiHori

2019/08/22 07:52

Controllerというクラスに button(_ sender:)などのメソッドがありませんか? エラーの内容は Controllerというクラスの buttonWithSender: というメソッドが見つからない。(ただし、これはobjective-cからの呼び出しのため、swift上ではメソッド名が変わる)というものです。 Swiftでの開発においてこれが起こるのは、メソッドに @objcまたは@IBActionが付いていないためobjective-cから認識できない、あるいはstorybord上で誤って存在しないアクションに接続しているというのが主な原因です。 ちなみにSegue等実行時に画面上に表示されないオブジェクトもアクションが接続可能なのですべてのオブジェクトの接続を確認してください。
退会済みユーザー

退会済みユーザー

2019/08/22 10:12

MasakiHori様、@IBActionではなく@IBOutletであったためにエラーが発生していました。ご迷惑かけて申し訳ございませんでした。ちなみに、次の画面に画面遷移した後、さらに次の画面に画面遷移するにも受け取りと、出力を出すだけでしょうか?
hameji

2019/08/25 00:14

ちなみには別質問です。 解決したなら解決に、そうでないならそうでないエラーを書いてください。
guest

回答1

0

ベストアンサー

この問題に関しては解決いたしました。MasakiHori様、takabosoft様ありがとうございました。

投稿2019/09/01 02:08

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問