gpt4 book ai didi

ios - SKView!提交时发现为零

转载 作者:行者123 更新时间:2023-11-30 13:53:03 27 4
gpt4 key购买 nike

class MyClass: UIViewController {

var playerViewController = AVPlayerViewController()
var playerView = AVPlayer()
var playerTimer = NSTimer()


override func viewDidAppear(animated:Bool) {
super.viewDidAppear(true)
presentViewController(GameViewController1(), animated: false, completion: nil)
let fileURL = NSURL(fileURLWithPath: "SomeFile.mp4")

playerView = AVPlayer(URL: fileURL)

playerViewController.player = playerView

self.presentViewController(playerViewController, animated: false){
self.playerViewController.showsPlaybackControls = false
self.playerViewController.player?.play()
self.playerTimer = NSTimer.scheduledTimerWithTimeInterval(4.2, target: self, selector:Selector("stopAfter4seconds:"), userInfo: nil, repeats: false)
}
}
func stopAfter4seconds(timer: NSTimer){
playerViewController.player = nil
playerViewController.removeFromParentViewController()
playerTimer.invalidate()
playerViewController.presentViewController(GameViewController1(), animated: false, completion: nil)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()


}

}

在“MyClass”(上方类(class))上播放视频后

然后,我删除 View 并显示具有 GameScene 的 GameContollerView1。
(下面的类)

class GameViewController1: UIViewController, ADBannerViewDelegate {


@IBOutlet var skView: SKView!

override func viewDidLoad() {
super.viewDidLoad()


if skView.scene == nil {
let scene = GameScene(size: skView.bounds.size)
skView.presentScene(scene)
}
}

override func shouldAutorotate() -> Bool {
return true
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return UIInterfaceOrientationMask.AllButUpsideDown
} else {
return UIInterfaceOrientationMask.All
}
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

override func prefersStatusBarHidden() -> Bool {
return true
}

}

我最初的问题是,当我呈现“GameViewController1”类时,出现错误:

 fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb)

在这一行:

if skView.scene == nil {

所以它告诉我我的 SKView!是 nil,正如你从我的 if 语句中看到的,这正是我一直在寻找的。

最奇怪的部分是,当我跳过“MyClass”并首先将 StoryBoard 入口点指向 GameViewContoller1 时,所有代码都能正确播放。

AVPlayer() 与此有关吗?从逻辑上讲,我的代码应该可以工作,但由于某种未知的原因......事实并非如此。任何帮助将不胜感激。

最佳答案

OP 答案:最终返回到 AppDelegate 并从那里调用 GameViewController1 类。花了一些时间才弄清楚,但这是为我完成的整体代码:

let gameScene = UIStoryboard(name: "Main", bundle:nil).instantiateViewControllerWithIdentifier("GameViewController1") as UIViewController
let appDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
appDelegate.window?.rootViewController = gameScene

我将此代码输入到 ViewDidDisappear 中,以使我的 AVplayer 消失并加载新 View :)..你不知道这花了我多长时间。

提示:请确保将其放入某种 ViewDidLoad 或 View 方法之一中,否则您将收到错误“预期声明”

关于ios - SKView!提交时发现为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34012409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com