2016-12-07 99 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

相关问题