我正在努力将UI视图控制器更改为屏幕上的游戏,在此屏幕上我计划显示分数,重置和广告。我将向您展示我已经在下面的代码,我将列出我的项目的设置方式。
一旦检测到碰撞状态
,游戏就会运行 Thread 1 EXC_BAD_INSTRUCTION (code=EXC1386_INVOP,subcode=0x0)
以下是我目前使用的代码......
import SpriteKit
class GameScene: SKScene, SKPhysicsContactDelegate {
var viewController: GameViewController!
var secondViewController: GameOverViewController!
override func didMoveToView(view: SKView) {
//lots of code here
func didBeginContact(contact: SKPhysicsContact) {
if( moving.speed > 0 ) {
moving.speed = 0;
self.viewController.performSegueWithIdentifier("GameOverViewController", sender: self)
}
我目前有以下设置:
GameViewController.swift
& GameOverViewController.swift
Class:GameOverViewController
& Storyboard ID:GameOVerViewController
GameViewController
到GameOverViewController
如果有人能帮助我那会很棒。
谢谢。
答案 0 :(得分:1)
performSegue:withIdentifier:
应该有效。
您在执行performSegue:withIdentifier:
时遇到什么错误?
您是否在连接两个视图控制器的故事板中设置了segue,并且该segue是否具有名为secondViewcontroller
的标识符?
看看这个Storyboard tutorial。
答案 1 :(得分:0)
也许你试图在没有导航堆栈的情况下推动视图控制器,如果是你的情况,尝试以模态方式呈现你的视图控制器,同时检查你如何连接segue。抱歉我的英语不好。
答案 2 :(得分:0)
将您的performSegue调用更改为
belongs_to :home_team, class_name: 'Club', foreign_key: 'Home_Team', primary_key: 'ClubKey'
重新测试。你得到同样的错误吗?如果是这样,您还没有正确命名您的segue。 Interface Builder中设置的segue名称必须与您尝试在代码中调用的segue名称完全匹配。要解决此问题:在界面构建器中选择segue,将标识符框读取为正确的名称,更新您的performSegue调用以使用该字符串并重建。 (如果更新“接口”构建器中的标识符,请确保在重建之前清理项目以确保拾取新符号。)
但是,如果测试导致不同的错误,“'Receiver<>没有带标识符'DOES_NOT_EXIST'的segue”,那么您的原始执行segue调用工作正常。把它放回原来的样子。还有其他因素导致你的崩溃。