そこらへんの大学生のブログ

iOS開発やったり、海外に住んだり、大学生やったりしてます。

初回起動時のみ特定のViewControllerを表示する!!

初回起動時と二回目以降の判別方法


例えば初めてアプリが開かれた時のみアプリの説明、使い方を表示したいということがあると思います。
初回起動時だけ特定のViewControllerに遷移し、それ以降はデフォルトのInitial ViewControllerに遷移するようにしてみます。


AppDelegateのdidFinishLaunchingWithOptions内に処理を書きましょう!

let userDefaults = UserDefaults.standard
let isFirstLaunch = ["firstTimeLaunch": true]
userDefaults.register(defaults: isFirstLaunch)


UserDefaults内に初回起動かどうかをBool値で保存し、それを元に判定します!
初期値は初回起動なのでtrueにして保存しましょう!

if userDefaults.bool(forKey: "firstTimeLaunch") {
  userDefaults.set(false, forKey: "firstTimeLaunch")
            
  self.window = UIWindow(frame: UIScreen.main.bounds)
  let storyBoard = UIStoryboard(name: "Main", bundle: nil)
  let initialViewController = storyBoard.instantiateViewController(withIdentifier: "HowToUse")
  self.window?.rootViewController = initialViewController
  self.window?.makeKeyAndVisible()
}


先ほど登録したUserDefaultsのBool値を取得し、true(初回起動)ならば、identifierで指定したViewControllerを表示します。
なのでstoryboardで初回起動時に表示したいViewControllerにidentifierを指定するのを忘れないでください!!

初回起動でなければデフォルトのinitialViewControllerが表示されます!