【问题标题】:At startup, open the specified ViewController (iOS) [duplicate]在启动时,打开指定的 ViewController (iOS) [重复]
【发布时间】:2017-09-04 16:29:49
【问题描述】:

我有两个 VC(ViewController、SettingsVC、VC2)。

我怎样才能使当您打开开关(位于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
}

【问题讨论】:

    标签: ios swift3 xcode8 nsuserdefaults


    【解决方案1】:

    您不会在开关更改时更改UserDefaults 值。您应该将以下 IBAction 连接到 IB 中的 Value Changed

    SettingsVC.swift

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

    【讨论】:

    • 应用启动时,只有didFinishLaunchingWithOptions中写的VC
    猜你喜欢
    • 1970-01-01
    • 2021-07-24
    • 2012-01-05
    • 2021-08-22
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多