我想在几秒钟后加载我的应用程序后切换到另一个视图控制器,该怎么做?
答案 0 :(得分:2)
试试这个
您可以在块中执行segue,导航和显示下一个视图控制器
在ViewDidLoad
,ViewWillAppear
DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {
self.performSegue(withIdentifier: "leadingToTutorial", sender: self)
})
答案 1 :(得分:1)
在 Swift 3.0 中,您使用Time将一个 ViewController 移动到第二个 ViewController 。在这里我创建了代码,所以观看它。
导入UIKit
class ViewController: UIViewController {
var gameTimer: Timer! //Timer object
override func viewDidLoad() {
super.viewDidLoad()
gameTimer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(timeaction), userInfo: nil, repeats: true)
}
//Timer action
func timeaction(){
//code for move next VC
let secondVC = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
self.navigationController?.pushViewController(secondVC, animated: true)
gameTimer.invalidate()//after that timer invalid
}
}
我希望它的工作。
答案 2 :(得分:0)
当你的第一个ViewControllers的viewDidLoad方法将执行时,你可以定义你的代码For Move to Another ViewController,For Some Second delay你可以使用
延迟几秒
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
// your code here For Pushing to Another Screen
}
在这里你可以定义你想要多长时间作为延迟,例如我提到0.1,你可以根据你的要求定义
答案 3 :(得分:0)
使用Timer
Class name {
private var timer: Timer?
fun viewDidLoad() {
timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(yourMethod), userInfo: nil, repeats: false)
}
objc func yourMethod() {
performSegue(withIdentifier:Sender:)
}
}
答案 4 :(得分:0)
在您的视图的viewDidLoad()
方法中,您可以在方法的末尾添加以下行
[self performSelector:@selector(goNext:)withObject:nil afterDelay:5.0];
在goNext:
方法中,您可以添加
[self.navigationController pushViewController:vc animated:YES];
执行导航并转到下一个视图。