Я разрабатываю игру и хотел бы, чтобы одна сцена с набором спрайтов имела собственный контроллер представления (вывод, к которому я пришел после долгих споров), и хотел бы избежать использования раскадровки (я могу добиться того, что хочу, с помощью раскадровки, но хотел бы научиться делать это без раскадровки).
В моем контроллере основного представления после нажатия кнопки у меня есть следующий код
MyViewController2 *test = [[MyViewController2 alloc] init];
test.view = [[SKView alloc] init];
[self presentViewController: test animated:YES completion:nil];
Однако это просто переходит в серый экран, на котором ничего нет (еще не перезаписал «-(id) init»). Следующий код вызывается, если я перезаписываю метод "-(id)init" в MyViewController2:
-(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 и в его инициализации я устанавливаю представления только SKView, я все равно получаю эту ошибку . Как я могу это исправить? Спасибо за ваше время и помощь.