2016-03-20 20 views
0

我想有一個UIView彈出時,第一次用戶打開一個ViewController關閉標籤欄控制器 - 我只是想有一個消息彈出來解釋它是如何工作的,像一個教程。檢測第一次啓動多個ViewControllers - 斯威夫特

我已經實現了第一個ViewController在啓動時彈出,但我想讓它檢查我的選項卡上的多個ViewController上的第一次啓動。我不太確定我在這裏做錯了什麼。該視圖具有:UIImageView,UITextView和一個UIButton,我將在點擊時用於「隱藏」視圖。

override func viewDidLoad() { 
    super.viewDidLoad() 

    isAppAlreadyLaunchedOnce() 
    } 

func isAppAlreadyLaunchedOnce()->Bool{ 
    let defaults = NSUserDefaults.standardUserDefaults() 

    if let isAppAlreadyLaunchedOnce = defaults.stringForKey("isAppAlreadyLaunchedOnce"){ 
     print("App already launched") 

     return true 
    }else{ 
     backgrdView.hidden = false 
     messageView.hidden = false 
     textView.hidden = false 
     okButton.hidden = false 
     tobysLabel.hidden = false 


     return false 
    } 
} 


@IBAction func okButtonTapped(sender: UIButton) { 

    backgrdView.hidden = true 
    messageView.hidden = true 
    tobysLabel.hidden = true 
    textView.hidden = true 
    okButton.hidden = true 
} 

回答

1

而不是檢查isAppAlreadyLaunchedOnce檢查啓動ViewController,而不是。因此,firstVC是啓動添加到userDefaults firstVC爲true。如果第二個啓動,則將第二個VC設置爲true。所以這將保持個人VC的userDefaults。點擊確定後設置您的UserDefaults。然後在檢查每個VC的第一次啓動時,在所有VC中執行此操作。請爲不同的VC保留不同的密鑰。

func isAppAlreadyLaunchedOnce()->Bool{ 
let defaults = NSUserDefaults.standardUserDefaults() 
if defaults.boolForKey("firstVC") { 
    print("First VC launched") 
    return true 
}else{ 
    backgrdView.hidden = false 
    messageView.hidden = false 
    textView.hidden = false 
    okButton.hidden = false 
    tobysLabel.hidden = false 
    return false 
} 
} 


@IBAction func okButtonTapped(sender: UIButton) { 
    backgrdView.hidden = true 
    messageView.hidden = true 
    tobysLabel.hidden = true 
    textView.hidden = true 
    okButton.hidden = true 
    NSUserDefaults.standardUserDefaults().setBool(true, forKey: "firstVC") 
} 
+0

我想我在這裏,雖然我不像我應該那樣熟悉NSUserDefaults。如何在第一次啓動時檢查非root ViewController? – pmoney13

+1

您可以在'viewDidLoad'方法內添加代碼。第一次加載視圖時,它只會被調用一次。 – atulkhatri

+0

這工作完美@阿倫 - 感謝您的知識和您的快速解決方案。 – pmoney13