一尘不染

在ViewDidLoad中执行Segue

swift

如果应用程序是第一次加载,我正在尝试执行segue。我可以在调试器中看到我的打印消息,但是Perform
Segue无法正常工作。我没有任何错误。有人可以告诉我怎么了吗?

import UIKit
import LocalAuthentication
let isFirstLaunch = UserDefaults.isFirstLaunch()
extension UserDefaults {
    // check for is first launch - only true on first invocation after app install, false on all further invocations
    // Note: Store this value in AppDelegate if you have multiple places where you are checking for this flag
    static func isFirstLaunch() -> Bool {
        let hasBeenLaunchedBeforeFlag = "hasBeenLaunchedBeforeFlag"
        let isFirstLaunch = !UserDefaults.standard.bool(forKey: hasBeenLaunchedBeforeFlag)
        if (isFirstLaunch) {

            UserDefaults.standard.set(true, forKey: hasBeenLaunchedBeforeFlag)
            UserDefaults.standard.synchronize()
        }
        return isFirstLaunch
    }
}

class loginVC: UIViewController {





    override func viewDidLoad() {

        super.viewDidLoad()

        if  isFirstLaunch == false {
          performSegue(withIdentifier: "setPassword", sender: self)
            print("testFalse") }
            else {
            performSegue(withIdentifier: "setPassword", sender: self)
            print("testTrue")}


        //       Do any additional setup after loading the view, typically from a nib.




    }

阅读 225

收藏
2020-07-07

共1个答案

一尘不染

您不能在viewDidLoad()中使用performSegue()。将其移动到viewDidAppear()。

在viewDidLoad()时,当前视图甚至还没有附加到窗口,因此尚无法进行隔离。

2020-07-07