私は自分のコードにイントロシーケンスを追加しようとしているので、初めてアプリケーションを開くと、ユーザーはいくつかの基本情報(私はUserDefaultsに保存できる)を入力できるようになります。イントロシーケンスを実装する最良の方法は? Swift
これを行う方法は、最初にtrue
に設定されたisFirstTime
という変数を持つことです。アプリが開かれるたびに、UserDefaultsにisFirstTime
の値があるかどうかがチェックされます。表示されていない場合は、イントロシーケンスが表示されているView Controllerがトリガーされます。イントロシーケンスが終了すると、isFirstTime
はfalse
に設定され、UserDefaultsに格納されます。
これは正しい実装ですか、より効率的な方法ですか?
EDIT:誰かが興味があれば、これは私のイントロシーケンスを実装するために使用したコードです。私は最初にアプリケーションを開くかどうかを追跡するView Controllerの外にブール変数を割り当てます。
var isFirstTime = true
はその後、私のViewDidAppear
(それはViewDidLoad
方法では動作しません)で、私はすでに私のisFirstTime
変数のUserDefault
を持っているかどうかをチェックし、このコードを追加しました。はいの場合、残りのプログラムを実行しますが、そうでない場合は、イントロシーケンスのView Controllerを起動します。最初はisFirstTime
の値を変更し、UserDefaultとして設定され、第二には、次のとおりです。私は、ユーザーの基本的な情報を収集して行われています私のイントロシーケンスビューコントローラでは、
if UserDefaults.standard.object(forKey: "isFirstTime") != nil{
// Not the first time app is opened
isFirstTime = false // I use isFirstTime elsewhere in my code too.
} else {
let introVC = self.storyboard?.instantiateViewController(withIdentifier: "intro")
self.present(introVC!, animated: false, completion: nil)
}
、私は2つのことを行いますView Controllerを終了します。
isFirstTime = false
UserDefaults.standard.set(isFirstTime, forKey: "isFirstTime")
dismiss(animated: false, completion: nil)
。 (もちろん、悪魔は詳細になります。) – matt
逆の場合は、最初にそれをnilかfalseにチェックしてください。 Introシーケンスを表示したら、ブール値をtrueにします。 – Arasuvel
@Arasuvel逆の場合はどうしたらいいですか? – kbunarjo