質問: selfで自分自身を処理を任せる側のクラスのdelegateに設定する際にUnexpectedly found nil while unwrapping an Optional valueというエラーが出ますこれはviewDidLoad() のなかに書いてありますが、viewDidLoad() が実行される際にはhogeViewはnillだからエラーが出ているという事だと思うのですが、これはどうすれば良いのでしょうか? 具体的には、こちらのプログラム、 https://github.com/shin8484/PopupWindow のDemoのRegisterPopupViewのボタンを押した時にVCにあるメソッドを実行したいといった流れです!
回答: UI表示中に別のUIの見た目を変更したいのか、単に別のUIがもつメンバ変数の値を参照したいのかどちらでしょうか。用途によりやり方を変えるべきです。 *本来didTapButtonで別のUIクラスが持つメソッドtestを呼び出して何をしたいのかまで提示されるとより適切な回答を得られやすくなるかと思います。 前者の場合「見た目変更」は、できないので、別のUIに遷移・戻った時に変更することになります。 ですので、結局のところ、何らかの変数を変更することに尽きます。 (とは言え、用途により適切な方法も変わると思います) 提示された情報からだと、delegateが一般的かと思われます。 AppDelegateに共通の変数を用意しても良いです(複数のクラスで参照する)し、 UserDefaultsなどもあります。