2017-09-04 27 views
0

我有两个VC(ViewController,SettingsVC,VC2)。在启动时,打开指定的ViewController(iOS)

我该如何做到这一点,以便当您打开开关(位于SettingsVC)时,应用程序启动时,它会显示VC2?

默认值为ViewController.swift

我试过这段代码,但是当我打开开关时,重新启动后没有任何反应。

SettingsVC.swift

let isSwitchOn = UserDefaults.standard.set(true, forKey: "isSwitchOn") 

@IBOutlet weak var `switch`: UISwitch! 

AppDelegate.swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    let isSwitchOn = UserDefaults.standard.bool(forKey: "isSwitchOn") 
    if isSwitchOn { 
     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     let VC2 = storyboard.instantiateViewController(withIdentifier: "ViewController") 
     self.window!.rootViewController = VC2; 
    } 
    // Override point for customization after application launch. 
    return true 
} 

回答

1

你不改变UserDefaults值当开关变化。您应该连接以下IBAction价值IB改变

SettingsVC.swift

@IBAction func switchValueChanged(_ sender: UISwitch) { 
    UserDefaults.standard.set(sender.isOn, forKey: "isSwitchOn") 
} 
+0

当应用程序启动时,只写在didFinishLaunchingWithOptions的VC – BLC

相关问题