【发布时间】:2015-09-14 06:04:18
【问题描述】:
我正在开发一款游戏,希望有一个 sprite-kit 场景有自己的视图控制器(经过多次辩论后得出的结论),并且想避免使用故事板(我可以用故事板,但想学习如何在没有故事板的情况下做到这一点)。
在我的主视图控制器中,单击按钮后,我有以下代码
MyViewController2 *test = [[MyViewController2 alloc] init];
test.view = [[SKView alloc] init];
[self presentViewController: test animated:YES completion:nil];
但是,这只是转换一个没有任何内容的灰色屏幕(尚未覆盖“-(id)init”)。如果我覆盖 MyViewController2 中的“-(id)init”方法,则会调用以下代码:
-(id)init
{
NSLog(@"init overwrite works");
SKView * skView = (SKView *)self.view;
SKScene2 *scene = [SKScene2 sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeFill;
[skView presentScene:scene];
return self;
}
但它不会显示,因为我收到此错误:
-[UIView presentScene:]: unrecognized selector sent to instance
我知道这个错误是什么意思(presentScene 只能由 skView 执行,而不能由 UIView 执行),但即使我创建 ViewController 并在其 init 中将视图设置为仅 SKView,我仍然得到这个错误。我怎样才能解决这个问题?感谢您的时间和帮助。
【问题讨论】:
标签: ios objective-c uiviewcontroller transition skscene