尝试转换场景时无法将 UIView 的值转换为 SCNView [重复]
Posted
技术标签:
【中文标题】尝试转换场景时无法将 UIView 的值转换为 SCNView [重复]【英文标题】:Could not cast Value of UIView to SCNView when trying to transition scenes [duplicate] 【发布时间】:2016-09-05 22:07:11 【问题描述】:嘿,我有 2 个场景都以相同的方式设置。我现在所处的场景称为“Extra1”,我试图到达的场景称为 GamePlay。使用此代码没有错误,但每次尝试调用应该让我更改视图控制器的函数时它都会崩溃。在我尝试转换之前,这两个视图都很好。错误指向此代码:
let scnView = self.view as! SCNView
这是错误:
代码:
import UIKit
import GLKit
import GameKit
import SceneKit
import StoreKit
import SpriteKit
import QuartzCore
import Foundation
import AVFoundation
import AudioToolbox
import GameController
class Extra1: UIViewController, ADBannerViewDelegate, SKPhysicsContactDelegate,SKSceneDelegate, SCNSceneRendererDelegate, SCNPhysicsContactDelegate
override func viewDidLoad()
super.viewDidLoad()
let scnView = self.view as! SCNView
//scnView.delegate = self
scnView.scene = FieldScene
scnView.playing = true
scnView.loops = true
self.view.multipleTouchEnabled = true
scnView.multipleTouchEnabled = true
self.HUDView = GameScene(size: scnView.bounds.size)
self.HUDView.delegate = self
scnView.overlaySKScene = self.HUDView
scnView.delegate = self
scnView.overlaySKScene!.delegate = self
scnView.overlaySKScene!.userInteractionEnabled = true
scnView.backgroundColor = UIColor.clearColor()
scnView.showsStatistics = false
// Error happens when this function is called. If function isnt called the view call justs fine
func MoveControls()
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("GamePlay")
self.presentViewController(vc, animated: true, completion:nil)
更新以下答案:
【问题讨论】:
【参考方案1】:我想崩溃线在GamePlay
场景内。
如果是这样,打开故事板并将GamePlayViewController
的view
的类更改为SCNView
。
【讨论】:
这就是错误出现在 Extra1 内部的那一行,这是我的第一个视图控制器,我更新了我的帖子 如果你设置了一个带有 2 个 scnview 视图控制器的项目,你会遇到这个问题,或者至少你应该这样做。我不能使用 segues,而且我不知道任何其他方式来切换 viewControllers以上是关于尝试转换场景时无法将 UIView 的值转换为 SCNView [重复]的主要内容,如果未能解决你的问题,请参考以下文章
无法将“UIView”类型的值转换为“SKView”(已删除情节提要)
无法将类型“(SwipeableTabBarController).Type”的值转换为预期的参数类型“UIView”
无法将类型“(MapViewController).Type”(又名“MapViewController.Type”)的值转换为预期的参数类型“UIView”
无法将“UIView”(0x10d54a4c0)类型的值转换为“UIButton”(0x10d552120)