Ios 如何延迟执行?

Ios 如何延迟执行?,ios,swift,swift4.1,Ios,Swift,Swift4.1,我正在创建一个小项目,这样在按下一个按钮 将带我到下一个使用导航控制器的视图控制器-我可以延迟一段时间后执行导航控制器的功能吗 我正在使用这个代码- import UIKit class ViewController: UIViewController { @IBAction func enterButtonPressed(_ sender: UIButton) { let vc = storyboard?.instantiateViewController(with

我正在创建一个小项目,这样在按下一个按钮 将带我到下一个使用导航控制器的视图控制器-我可以延迟一段时间后执行导航控制器的功能吗

我正在使用这个代码-

import UIKit

class ViewController: UIViewController
{
   @IBAction func enterButtonPressed(_ sender: UIButton)
   {
       let vc = storyboard?.instantiateViewController(withIdentifier: "ViewController2") as! ViewController2
       self.navigationController?.pushViewController(vc, animated: true)
   }

   override func viewDidLoad()
   {
      super.viewDidLoad()
   }

   override func didReceiveMemoryWarning() 
   {
      super.didReceiveMemoryWarning()
   }

}
试试这个

var timeLimit = 5.0
DispatchQueue.main.asyncAfter(deadline: .now() + timeLimit, execute: {
    //Play your audio here
    //Audio will play after 5 seconds here
})

假设
sender.tag
保存的持续时间为0表示继续,5或10表示继续

var playTimer:Timer?
//


你的问题是什么?你想在5/10秒后播放音频还是以5/10秒的偏移量播放?要在5/10秒后计划,请使用NSTimer。实际上,asyncAfter不能保证在特定时间调用,它保证在指定时间后运行,不确定这是正确答案
@IBAction func btnClicked(_ sender:UIButton) {

    playTimer?.invalidate()

    playTimer = Timer.scheduledTimer(withTimeInterval: TimeInterval(sender.tag), repeats: false, block: { (T) in

        // play the audio

    })
}