Ios 如何在viewDidLoad中为性能检查添加延迟?

Ios 如何在viewDidLoad中为性能检查添加延迟?,ios,swift,swift4,Ios,Swift,Swift4,在我的第一个viewController的viewDidLoad中,如果用户经过身份验证 通过性能检查自动发送到主页 override func viewDidLoad() { super.viewDidLoad() Auth.auth().addStateDidChangeListener() { (auth, user) in if user != nil{ self.ballClipRotatePulse.startAnimat

在我的第一个viewController的viewDidLoad中,如果用户经过身份验证 通过性能检查自动发送到主页

override func viewDidLoad() {
    super.viewDidLoad()


    Auth.auth().addStateDidChangeListener() { (auth, user) in
        if user != nil{

            self.ballClipRotatePulse.startAnimating()
            self.performSegue(withIdentifier: "goToHome1", sender: self)

        }
    }
}
但是,由于我希望用户首先看到加载的动画,如何才能使performSegue比self.ballciprotatepulse.startAnimating()晚两秒启动?,语法很简单:

Auth.auth().addStateDidChangeListener() { (auth, user) in
    if user != nil {
        self.ballClipRotatePulse.startAnimating()
        // to run something in 2 seconds
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            // your code here
            self.performSegue(withIdentifier: "goToHome1", sender: self)
        }
    }
}
试试这个

let when = DispatchTime.now() + 2.0 // 2 is desirable delay
DispatchQueue.main.asyncAfter(deadline: when){ // your postponed code }

顺便说一句,别忘了用户在延迟期间可能会触碰某些界面元素,因此您的应用程序可能会出现意外行为。更好的解决方案是从动画完成处理程序调用
performsgue

您可以在ViewDidDisplay中调用
performsgue
,但仍要延迟,然后使用timer您可以使用DispatchQueue您可以帮我举个例子吗,这是我第一次尝试这样做吗?动画停止时没有通知或完成处理程序吗?等待硬编码的时间总是最糟糕的解决方案/情况。