[英]Segue won't perform when activated without a button xcode Swift 2
[英]Swift perform segue without clicking button
我正在SpriteKit中制作一个小游戏,其中存储了一个bool值,该值检查用户是否是第一次玩我的游戏。 如果是这样,我希望应用程序将他重定向到另一个输入他的角色名称的viewcontroller。
但是,我无法让我的应用程序执行此操作。
在我的“ GameViewController.swift”中,我有以下代码:
override func viewDidLoad() {
super.viewDidLoad()
checkGame()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "GameScene") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Present the scene
view.presentScene(scene)
}
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
func checkGame() {
//Check game
let firstPlay:Bool = appData.bool(forKey: "\(GameData.firstPlay)")
print(firstPlay)
if firstPlay == false {
print("Heading for setup")
self.performSegue(withIdentifier: "GoToSetup", sender: nil)
}
}
但是,“ setup viewcontroller”未加载。 我可以通过单击按钮来欺骗欺骗,但这不是我想要的。 我希望视图加载后立即发生。
有任何想法吗?
我不知道“设置视图控制器”未加载是什么意思,”但是通常我们不会在viewDidLoad
执行segues。这时,该视图刚刚被加载到内存中并且尚未出现。这时的segue是一件奇怪的事情。
我建议您在viewDidAppear()
执行segue:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated: animated)
performSegue(withIdentifier: "GoToSetup", sender: nil)
}
您可以通过以下方式以编程方式调用segue:
self.performSegueWithIdentifier("segueId", sender: self);
据说,在viewDidLoad阶段,UIViewController不能完成任何UI交互,而不能执行performSegue,因为视图还不在视图层次结构中。 您可以在viewDidAppear(animated:Bool)
执行此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.