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

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

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

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

Swift

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

Q&A

解決済

1回答

679閲覧

segueを使用した画面遷移の際のエラーに関して

eotw

総合スコア48

iOS

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

Swift

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

0グッド

0クリップ

投稿2021/12/02 10:48

前提・実現したいこと

segueを使用した画面遷移の方法をサンプルで試しています。

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

prepareメソッドで値を渡しているのですが、下記のエラーが出ています。
Outletの接続も正常なので、nilではないと思うのですが。。

Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value

下記の3つはアラートです。

Value of optional type 'String?' must be unwrapped to a value of type 'String'
Coalesce using '??' to provide a default when the optional value contains 'nil'
Force-unwrap using '!' to abort execution if the optional value contains 'nil'

該当のソースコード

ViewController

Swift

1import UIKit 2 3class ViewController: UIViewController { 4 @IBOutlet weak var textField: UITextField! 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 // Do any additional setup after loading the view. 9 } 10 11 @IBAction func addAction(_ sender: Any) { 12 performSegue(withIdentifier: "toNextVC", sender: nil) 13 } 14 15 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 16 if segue.identifier == "toNextVC" { 17 let nextVC = segue.destination as! NextViewController 18 nextVC.nextText = self.textField.text 19 } 20 } 21 22}

遷移先のViewController

Swift

1import UIKit 2 3class NextViewController: UIViewController { 4 @IBOutlet weak var nextLabel: UILabel! 5 var nextText = "" 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 nextLabel.text = self.nextText 11 12 // Do any additional setup after loading the view. 13 } 14 15 @IBAction func backButton(_ sender: Any) { 16 dismiss(animated: true) 17 }

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

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

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

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

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

guest

回答1

0

ベストアンサー

Unexpectedly found nil while implicitly unwrapping an Optional value は、アプリを実行した時に発生するエラーで、 Value of optional type 'String?' must be unwrapped to a value of type 'String' は、アプリをビルドする時(アプリを実行する前)に発生するエラーです。

ソースコードのどの場所にこれらのエラーが表示されているのかが明記されていないので状況がよくわかりませんが、この2つのエラーメッセージが同時に表示されているのであれば、一度アプリを実行してUnexpectedly found nilのエラーが発生した後、エラーメッセージが表示されている状態でコードを修正し、そのコードを修正を誤ったため Value of optional type 'String?' must be unwrapped のエラーが発生するようになり、アプリの実行ができなくなったように見えます。

とりあえず1つ誤りが見えているのは、

swift

1nextVC.nextText = self.textField.text

の処理は、最後に ! をつけて

swift

1nextVC.nextText = self.textField.text!

とする必要があると思います。
(おそらくここが Value of optional type 'String?' must be unwrapped
エラーが発生している箇所ではないかと推測します。)

まずはここを修正して、改めてアプリを実行してみることをお勧めします。

投稿2021/12/03 05:55

TakeOne

総合スコア6299

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

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

eotw

2021/12/03 11:50

ありがとうございます! !を末尾につけることで解決いたしました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問