如何编程延迟?
How to program delay?
我有两个视图控制器。
我在第一个 VC 中制作了 imageview(在 Gif 文件中)。 5 秒后,我希望将页面传递给第二个 vc。第一个VC代码是这样的:
class LemonVC: UIViewController {
@IBOutlet weak var LemonGif: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
LemonGif.loadGif(name: "sufoo")
// DispatchQueue.main.asyncAfter(deadline: .now() +
.seconds(4), execute: {
//
// })
// Do any additional setup after loading the view.
}
第一个VC名字叫柠檬VC
第二个VC名字是第二个VC
试试这个:
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(5), execute: {
// go some where
// example
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let introRootVC = storyBoard.instantiateInitialViewController() // it's main controller, if you want to another create Story board ID
self.present(introRootVC!, animated: true, completion: nil)
})
您可以更改延迟,seconds(5) <- here
一种可能性是在第一个和第二个控制器之间使用 segue 来定义导航路径(从第一个控制器中的 "yellow" 点拖到第二个控制器上。此示例使用 show
种类)
确保你给它一个标识符名称,你的代码中需要这个。
我可能会使用 viewDidAppear
而不是 viewDidLoad
,至少这意味着视图已经转换到屏幕上。
然后,您需要做的就是使用UIViewController#performSegue
执行segue,它将呈现下一个控制器
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(5), execute: {
self.performSegue(withIdentifier: "skipTo", sender: self)
})
}
我有两个视图控制器。
我在第一个 VC 中制作了 imageview(在 Gif 文件中)。 5 秒后,我希望将页面传递给第二个 vc。第一个VC代码是这样的:
class LemonVC: UIViewController {
@IBOutlet weak var LemonGif: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
LemonGif.loadGif(name: "sufoo")
// DispatchQueue.main.asyncAfter(deadline: .now() +
.seconds(4), execute: {
//
// })
// Do any additional setup after loading the view.
}
第一个VC名字叫柠檬VC
第二个VC名字是第二个VC
试试这个:
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(5), execute: {
// go some where
// example
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let introRootVC = storyBoard.instantiateInitialViewController() // it's main controller, if you want to another create Story board ID
self.present(introRootVC!, animated: true, completion: nil)
})
您可以更改延迟,seconds(5) <- here
一种可能性是在第一个和第二个控制器之间使用 segue 来定义导航路径(从第一个控制器中的 "yellow" 点拖到第二个控制器上。此示例使用 show
种类)
确保你给它一个标识符名称,你的代码中需要这个。
我可能会使用 viewDidAppear
而不是 viewDidLoad
,至少这意味着视图已经转换到屏幕上。
然后,您需要做的就是使用UIViewController#performSegue
执行segue,它将呈现下一个控制器
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(5), execute: {
self.performSegue(withIdentifier: "skipTo", sender: self)
})
}