Вы можете использовать изменение метода didFinishLaunchingWithOptions в AppDelegate для достижения этой цели.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
guard let firstTime = UserDefaults.standard.object(forKey: "IsFirstTime") else {
UserDefaults.standard.set(true, forKey: "IsFirstTime")
let storyBoard = UIStoryboard.init(name: "FirstStoryBoard", bundle: nil)
let initialVc = storyBoard.instantiateViewController(withIdentifier: "FirstControllerId") as! FirstTimeViewController
self.window?.rootViewController = initialVc
self.window?.makeKeyAndVisible()
return true
}
let storyBoard = UIStoryboard.init(name: "Main", bundle: nil)
let initialVc = storyBoard.instantiateViewController(withIdentifier: "NormalInitialController") as! ViewController
self.window?.rootViewController = initialVc
self.window?.makeKeyAndVisible()
return true
}
Вы проверяете, существует ли значение для ключа «IsFirstTime» в UserDefaults. Не будет никакого значения, если приложение запускается в первый раз.
В этом случае вы можете запустить свой FirstTimeViewController и установить значение для ключа в UserDefaults.
Если в UserDefaults существует значение, просто запустите обычный ViewController.