この質問を最新の状態に保つために、ここに受け入れられた回答のSwiftバージョンがあります。
ステップ1
App Delegateに、次の関数を追加します。
func applicationDidFinishLaunching(application: UIApplication) {
if !NSUserDefaults.standardUserDefaults().boolForKey("TermsAccepted") {
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "TermsAccepted")
}
}
これが最初の起動である場合、これは基本的に、TermsAccepted Boolをfalseに設定します(Boolsはデフォルトでfalseであるため)。
ステップ2
ルートビューコントローラー(アプリの起動時に読み込まれるビューコントローラー)では、条件が受け入れられたかどうかを確認し、それに応じて動作する方法が必要です。
以下の関数を追加します。
override func viewDidAppear(animated: Bool) {
if NSUserDefaults.standardUserDefaults().boolForKey("TermsAccepted") {
// Terms have been accepted, proceed as normal
} else {
// Terms have not been accepted. Show terms (perhaps using performSegueWithIdentifier)
}
}
ステップ3
ユーザーが条件に同意したら、TermsAcceptedBoolをtrueに変更します。したがって、条件の受け入れを処理するメソッドの本文に、次の行を追加します。
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "TermsAccepted")
これがお役に立てば幸いです。
Loic