1

SKScene を表示する ViewController があります。したがって、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 に答える