2016-12-07 9 views
0

UIPageViewであるチュートリアルを最初の起動時に1回だけ表示したいとします。最初の起動時にUIPageViewControllerを1回だけ表示する方法

私はそれがUIPageControllerで作業していないいくつかの理由について、このコード

let launchedBefore = UserDefaults.standard.bool(forKey: "launchedBefore") 
    if launchedBefore { 
     performSegue(withIdentifier: "tutorialtohome1", sender: nil) 
    } 
    else { 
     UserDefaults.standard.set(true, forKey: "launchedBefore") 
    } 

を使用して、これをしようとしています、それは他のビューと正常に動作します。

わかりやすいように、このビューはチュートリアルの役割を果たすため、一度表示してから、もう一度表示しないでください。

提案がありますか?

ありがとうございました

+0

ここで、キー "launchBefore"の値を設定しますか? –

+0

最初の打ち上げ時または最初の打ち上げ時にセグーを発射しますか? – Paulw11

+0

最初の起動後にsegueを実行したいので、チュートリアルをスキップしてください – Khoury

答えて

3

OBJECTを確認する必要があります。ブールではありません。これはそれを行うより良い方法です。最初の実行では、そのようなキー "lauchedBefore"はありません。そこにないもののブール値をチェックすることはできません。

let launchedBefore = UserDefaults.standard.object(forKey: "launchedBefore") 

    if (launchedBefore==nil) { 
     performSegue(withIdentifier: "tutorialtohome1", sender: nil) 
     UserDefaults.standard.set(true, forKey: "launchedBefore") 
    } 
    else { 
     // already launched, so do nothing. 
    } 
+1

これは良い答えです。 Khoury、あなたのロジックは正しくありませんが、このコードはうまくいくはずです。 (投票された) –

+0

'boolForKey'はオプションを返しません。キーがユーザのデフォルトで定義されていない場合、 'false'を返します。最初の打ち上げ時に打ち出されるべきか、最初の打ち上げ後に打たれるべきかという疑問からは明らかではない。 – Paulw11

関連する問題