我有一个 viewcontroller,里面有一个 SKview(我正在使用 spritekit),每次我改变手机的方向(从一种横向方式到另一种横向方式,反之亦然),它都会重新加载 viewcontroller,就好像我刚刚打开了应用程序(viewcontroller 是第一个)。
有解决办法吗?
我似乎找不到任何人遇到同样的问题。
代码:
最佳答案
您正在 viewWillLayoutSubview 中设置您的 SKView每次旋转设备( View 框架更改)时都会调用它。
这很好,因为 View 将具有正确的尺寸,但是您应该放置一些 var 以了解您是否应该再次设置 View 。例如 BOOL sceneSetUp
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];
if(!self.sceneSetUp){
// Configure the view.
SKView * skView = (SKView *)self.view;
//skView.showsFPS = YES;
// Create and configure the scene.
SKScene * startScene = [StartViewController sceneWithSize:skView.bounds.size];
startScene.scaleMode = SKSceneScaleModeAspectFill;
SKScene * scene = [gameViewController sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
// Present the scene.
[skView presentScene:startScene];
//[skView presentScene:scene];
self.sceneSetUp = YES;
}
}
关于ios - 翻转 iPhone 方向重新加载 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21367686/