私は奇妙な質問があります。 SOやGoogleのどちらでも検索で解決策を見つけることができませんでした。コードを介してInterface Builderのアイテムを永久に非表示にする
UIView
私のUIViewController
には、ストーリーボードで主導しています。 このUIView
は、Interface Builder経由で非表示に設定されています。
特定のロジックに基づいて、私はこれを明らかにする必要がありますUIView
。
かなり簡単:myView.isHidden = false
問題は毎回その私のUIViewController
負荷である、それは[表示] - を国連が-隠し、再び非表示にビューを設定するよう-such前に起こっている何よりも優先されます。
恒久的に非表示にするスマートな方法がありますか?値を保存して毎回ViewWillAppear
に読み込むUserDefaultsに行くべきですか?
ありがとうございます。
注:私は************* Swift3
構文
******************* EDITでコーディングしています******
もっと明確にするには 専用のストーリーボードファイルに置かれたカスタムポップアップがたくさんあります。各ポップアップはUIViewController
です。
これらのポップアップは、基本的に業績ポップアップです。彼らは3つの星を持っています。それらはすべてデフォルトで隠されています(3つのUIImageView
のIBプロパティを介して)。
アプリに沿って、ユーザーがある種の業績に達すると、関連するUIViewControllerをそのストーリーボードファイルから呼び出し、関連する達成された星を表示します(非表示にする)。ちょうどそれのように。
メインVC:関連クラスファイルで
let viewController = UIStoryboard(name: "AchievementsPopUp", bundle: nil).instantiateViewController(withIdentifier: "Category1PopUp")
viewController.modalPresentationStyle = .overCurrentContext
self.present(viewController, animated: true, completion: nil)
は、私は、コードを経由してスターアン隠してるし、ユーザに提示します。ユーザーがpopupVCをメインのものに戻すと、そのUIImageViewの "un-hide"プロパティが失われます。 私はUserDefaultsのプロパティを使って解決しましたが、うまくいきます。 問題は、15種類のプロパティ(それぞれ3つの星がある5つの画面)を作成し、少し乱雑になった関連コードを管理する必要があったことです.- スマートなソリューションがあれば、実装してもよろしいでしょうか。
シーンがストーリーボードから読み込まれるたびに、プロパティはストーリーボードごとに設定されます。 'viewDidLoad'にいくつかのコードを書いて、必要に応じてビューを隠すか、再表示する必要があります。 – Paulw11
ありがとうございます。@ Paulw11これはまさに私が「回避策」としてやっていたものでした。しかし、それは回避策ではなく、通常の動作であるように見えます。 – Alex