1

我有一个 ViewController,我在其中展示我的 SKScene。所以在我展示 SKScene 之前,我使用 ViewController 中的 UIImagePickerController 来拍照并在

-imagePickerController:didFinishPickingMediaWithInfo:

当 UIImagePickerController 关闭时,我开始呈现场景并对其进行初始化:

[self dismissViewControllerAnimated:NO completion:nil];
    SKView * skView = (SKView *)self.view;
    skView.showsFPS = NO;
    skView.showsNodeCount = NO;

    // Create and configure the scene.
    MultiplayerScene * scene = [[MultiplayerScene alloc]initWithSize:self.view.frame.size andPicture:self.imageView];
    scene.scaleMode = SKSceneScaleModeAspectFill;
    // Present the scene.

    // --This works also just on the Simulator and not on Physical Device
    [scene setBackgroundColor:[UIColor redColor]];
    // --
    [skView presentScene:scene]; 

因此,在模拟器中发生的事情似乎可以正常工作,我的图像显示在屏幕上,但在物理设备上,选择器关闭,我只看到灰色的背景。

我已经尝试了 2 天来解决这个问题,但实际上我认为问题在于 SKScene 不是第一响应者或不会正确初始化,但是当我在物理设备上调试时,图片是正确的。任何类型的选取器/浏览器都会产生相同的问题。在 GrayBackground(SKScene 的默认颜色)上,触摸事件正在工作我可以在这里做什么来正确处理它?

最佳康斯坦丁

已解决 今天我将我的 Xcode 更新到 5.1,然后一切正常(头脑与桌子相遇)......
感谢 Mc.Lover 的明确回答!

4

1 回答 1

0

做这样的事情:

- (void)myMethod {

    MultiplayerScene * scene = [[MultiplayerScene alloc]initWithSize:self.view.frame.size andPicture:self.imageView];
    scene.scaleMode = SKSceneScaleModeAspectFill;

    [skView presentScene:scene]; 
}

[self dismissViewControllerAnimated:NO completion: ^ {[self myMethod]; }];

希望这可以帮助 !

于 2014-03-06T12:16:10.480 回答