2016-12-07 145 views
0

我想在第一次啓動時僅顯示一次UIPageView的教程。如何在首次啓動時僅顯示一次UIPageViewController

我在嘗試這個使用此代碼

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

出於某種原因,它不與UIPageController工作,它正常工作與其他視圖。

只是爲了說清楚,我只希望這個視圖出現一次,然後永遠不要再作爲教程。

有什麼建議嗎?

謝謝

+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

相關問題