как отложить исполнение? - PullRequest
0 голосов
/ 27 июня 2018

Я создаю небольшой проект, который после нажатия кнопки, которая перенесет меня к следующему контроллеру вида с помощью контроллера навигации - могу ли я отложить функцию для запуска контроллера навигации через некоторое время

я использую этот код-

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()
   }

}

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Предположим, что sender.tag содержит продолжительность, равную 0 для продолжения, 5 или 10

var playTimer:Timer?

//

@IBAction func btnClicked(_ sender:UIButton) {

    playTimer?.invalidate()

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

        // play the audio

    })
}
0 голосов
/ 27 июня 2018

Попробуйте это

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