Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ViewController首次使用后未更改_Ios_Swift_Userdefaults - Fatal编程技术网

Ios ViewController首次使用后未更改

Ios ViewController首次使用后未更改,ios,swift,userdefaults,Ios,Swift,Userdefaults,嗨,我只想在第一次使用时显示视图控制器(即:有人第一次启动应用程序,以后再也不显示) 我认为我有正确的代码,但由于某些原因,它只是不工作。有人知道为什么吗 AppDelegate.swift import UIKit import CoreData @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? let userDefaults =

嗨,我只想在第一次使用时显示视图控制器(即:有人第一次启动应用程序,以后再也不显示)

我认为我有正确的代码,但由于某些原因,它只是不工作。有人知道为什么吗

AppDelegate.swift

import UIKit
import CoreData

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    let userDefaults = UserDefaults.init()

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        userDefaults.set(true, forKey: "isFirstTime")
        userDefaults.set("RealmNotChosenOrSuggested", forKey: "RegionPreference")
        userDefaults.set([], forKey: "PreferredRealms")

        // Not using Storyboard instantiation code
        window = UIWindow(frame:UIScreen.main.bounds) //canvas
        window?.makeKeyAndVisible()

        if (userDefaults.bool(forKey: "isFirstTime")){
            userDefaults.set(false, forKey: "isFirstTime")
            window?.rootViewController = StartupViewController()
        } else{
            window?.rootViewController = DashboardViewController()
        }
        return true
    }
StartupViewController.swift

class StartupViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white
    }
DashboardViewController.swift

import UIKit

class DashboardViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .blue
    }

因为每次应用程序打开它运行时,您都会覆盖第一行中的键
isFirstTime

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
  //  userDefaults.set(true, forKey: "isFirstTime") // firs line comment it


if !(userDefaults.bool(forKey: "isFirstTime")){
    userDefaults.set(true, forKey: "isFirstTime")
    userDefaults.set("RealmNotChosenOrSuggested", forKey: "RegionPreference")
    userDefaults.set([], forKey: "PreferredRealms")
    window?.rootViewController = StartupViewController()
} else{
    window?.rootViewController = DashboardViewController()
}

从默认值读取密钥时,任何bool的默认值都为false