尝试转换场景时无法将 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 场景内。 如果是这样,打开故事板并将GamePlayViewControllerview的类更改为SCNView

【讨论】:

这就是错误出现在 Extra1 内部的那一行,这是我的第一个视图控制器,我更新了我的帖子 如果你设置了一个带有 2 个 scnview 视图控制器的项目,你会遇到这个问题,或者至少你应该这样做。我不能使用 segues,而且我不知道任何其他方式来切换 viewControllers

以上是关于尝试转换场景时无法将 UIView 的值转换为 SCNView [重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法将“UIView”类型的值转换为“SKView”(已删除情节提要)

无法将类型“(SwipeableTabBarController).Type”的值转换为预期的参数类型“UIView”

无法将类型“(MapViewController).Type”(又名“MapViewController.Type”)的值转换为预期的参数类型“UIView”

无法将“UIView”(0x10d54a4c0)类型的值转换为“UIButton”(0x10d552120)

无法将“UIView”(0x112484eb0)类型的值转换为“SKView”(0x111646718)

我们能否处理错误“无法将 BOOL 类型的值转换为预期的参数 UIiew”