shinonome-inc / mobile_sakai

0 stars 1 forks source link

【CustomView画面】CustomView閉じるボタン押下時にエラー #14

Closed yasyun closed 3 years ago

yasyun commented 3 years ago

起きている問題 表示したCustomView上の「CustomViewを閉じる」ボタンを押すと、customViewを隠す「customView.isHidden = true」でエラーが発生する。

エラー内容 @IBOutlet var customView: CustomView!のように紐づけしたはずのcustomViewの中身が、nilになっていてアンラップできない

再現手順 1.Storybord上にVIewパーツでCustomViewを配置し表示させる 2.「CustomViewを閉じる」ボタンを押す 3.「Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value: file /Users/yasyun/mobile_sakai/Delegate_App/Delegate_App/ViewController.swift, line 23」 というエラーが表示される

考えている正しい動作 ボタンを押すとisHiddenでCustomViewが隠される。 制約がついている関係でisHiddenできないのではと思い、制約を紐づけして0にするコードも記述したが、そちらでも同じエラーが出てしまった。

mcz9mm commented 3 years ago

isHiddenだとviewから存在が消えてるわけではないので、ボタンアクションの修正不要箇所のaddsubviewが実行されるたびに 別のcustomviewを貼り付けようとしてしまいます。 なので今回はremoveFromSuoerViewを使ってみてください

ShuheiYoshidaJP commented 3 years ago

僕はremoveFromSuperViewで実装しましたが、isHiddenでもできることを確認しました。

イメージ

伝わってなかったら申し訳ないのですが、 モバイルコースのリポジトリにViewController→CustomViewに遷移させる仕組みは用意してあるので 形式をこちらに移行してもらえると嬉しいです。 https://github.com/shinonome-inc/mobile_ios_course/tree/master/kadai07

ShuheiYoshidaJP commented 3 years ago

僕はremoveFromSuperViewで実装しましたが、isHiddenでもできることを確認しました。

イメージ

伝わってなかったら申し訳ないのですが、 モバイルコースのリポジトリにViewController→CustomViewに遷移させる仕組みは用意してあるので 形式をこちらに移行してもらえると嬉しいです。 https://github.com/shinonome-inc/mobile_ios_course/tree/master/kadai07

mcz9mm commented 3 years ago

本当だisHiddenでもできたわ。

isHiddenだとviewから存在が消えてるわけではないので、ボタンアクションの修正不要箇所のaddsubviewが実行されるたびに 別のcustomviewを貼り付けようとしてしまいます。 なので今回はremoveFromSuoerViewを使ってみてください