我想向我的代碼添加一個介紹序列,以便如果它是第一次打開該應用程序,用戶可以輸入一些基本信息(然後可以將其存儲在UserDefaults中)。執行介紹序列的最佳方式? Swift
我想這樣做的方法是通過一個名爲isFirstTime
的變量,最初設置爲true
。每次打開應用程序時,它都會檢查UserDefaults中是否有isFirstTime
的值。如果它不存在,它將觸發具有我的前奏序列的視圖控制器顯示。一旦介紹序列完成,isFirstTime
將被設置爲false
,然後存儲在UserDefaults中。
這是一個正確的實現,還是有一個更有效的方法?
編輯:如果有人有興趣,這是我用來實現我的介紹序列的代碼。我首先在我的視圖控制器之外分配一個布爾變量來跟蹤它是否是第一次打開應用程序。
var isFirstTime = true
然後,在我的ViewDidAppear
(它不會在ViewDidLoad
方法工作),我添加了這個代碼,檢查是否我已經有我的isFirstTime
變量UserDefault
。如果是,我然後執行我的程序的其餘部分,但如果沒有,我啓動我的前奏序列的視圖控制器。
if UserDefaults.standard.object(forKey: "isFirstTime") != nil{
// Not the first time app is opened
isFirstTime = false // I use isFirstTime elsewhere in my code too.
} else {
let introVC = self.storyboard?.instantiateViewController(withIdentifier: "intro")
self.present(introVC!, animated: false, completion: nil)
}
在我的介紹順序視圖控制器,當我與我的收集用戶的基本信息完成後,我做兩件事情:第一是改變isFirstTime
值並將其設置爲一個UserDefault,第二是解散視圖控制器。
isFirstTime = false
UserDefaults.standard.set(isFirstTime, forKey: "isFirstTime")
dismiss(animated: false, completion: nil)
這是完全正確的。 (當然,魔鬼會在細節上。) – matt
檢查它是否反向的情況下,最初檢查它是否爲假。一旦你顯示介紹序列,使布爾值爲真。 – Arasuvel
@Arasuvel你是什麼意思,檢查它是相反的情況? – kbunarjo