Как я могу показать новый контроллер представления через 3 секунды - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу показать новый ViewController после нажатия кнопки, но не напрямую. После нажатия кнопки я хочу подождать 3 секунды, а через 3 секунды - новый ViewController

Ответы [ 4 ]

0 голосов
/ 03 сентября 2018

Внутри кнопки действия создайте таймер:

@IBAction func Button(_ sender: Any) {
_ = Timer(timeInterval: 3, target: self, selector: #selector(showVC), userInfo: nil, repeats: false)
}

Затем добавьте селектор объектива C, который будет представлять следующий контроллер вида при вызове таймером через 3 секунды.

@objc func showVC() {
    let myVC = self.storyboard?.instantiateViewController(withIdentifier: "NextViewController") as! ViewController
    self.present(myVC, animated: true, completion: nil)
}
0 голосов
/ 03 сентября 2018

Добавить задержку при нажатии кнопки:

DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
   // Your code with navigate to another controller
}
0 голосов
/ 03 сентября 2018

DispatchQueue.main.asyncAfter (крайний срок: .now () + 3) {in [слабый, сам]

// Ваш код с переходом на другой контроллер // Слабое Я, потому что ваш текущий viewcontroller может быть dinit

}

0 голосов
/ 03 сентября 2018

Вы можете использовать запланированный таймер для отключения функции по истечении заданного интервала времени.

let timer = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(showVC), userInfo: nil, repeats: false)


@objc func showVC() {
    //navigate to your desired VC
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...