質問: trueにしたのですが、Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value というエラーが発生しました。buttonがnilになっていた為、発生しているようです。 buttonがnilでないようにするにはどうすればいいでしょうか。 ### 該当のソースコード import UIKit class ViewController: UIViewController { @IBOutlet weak var button: UIButton! //こちらが画面Aのbuttonです @IBAction func change(_ sender: Any) { //こちらが画面Bのbuttonの動作設定です button.setTitle("*_*", for: .normal) //ここで上記のエラーが発生します } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } }
回答: やってることが、めちゃくちゃですよ Storyboard(ViewControllerA) - ViewControllerA.swift Storyboard(ViewControllerB) - ViewControllerB.swift で接続します。 なので、ViewControllerBのbuttonの@IBActionをViewControllerA.swift につなげてはいけません。 まずはそこからです。 基本なので、本や学習サイトなどを参考に勉強してみるといいと思います。 先に進むには基本は大事ですよ。 そして、状態によってボタンの表示を変えたい場合、 データを保存するクラスを介在させるのが定石です。 理由は、データ自体で持たせないと、 時間がたったり、メモリ不足になったら、 インスタンスは消えてしまう可能性があるからです。 なので、 viewControllerAのviewWillAppearでボタン名をデータクラスから読み込む viewControllerBでボタンを押したら、データクラスの値を変える これで実現できると思います。