ios objective-c iphone uiviewcontroller sprite-kit

ios - Presente un UIViewController de SKScene



objective-c iphone (1)

Encontré una solución que es mucho más simple que la mayoría de las soluciones disponibles:

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil]; UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"PurchasedVC"]; //Call on the RootViewController to present the New View Controller [self.view.window.rootViewController presentViewController:vc animated:YES completion:nil];

También descubrí un trazador de líneas aún más simple si creas un segue en Storyboard y le das un identificador:

[self.view.window.rootViewController performSegueWithIdentifier:@"PurchasedViewController" sender:self];

Estoy tratando de presentar un UIViewController de un SKScene y no puedo encontrar la manera de hacerlo. La mayor parte de lo que ofrece una búsqueda en Google es cómo presentar una pantalla compartida de un SKScene, pero eso no es lo que estoy tratando de hacer. Solo un controlador de vista regular que tendrá un botón y una etiqueta (tal vez una imagen también).

Aquí está mi código en mi introducción. Esta no es la escena de Juego, solo una pantalla de introducción con un título, un botón de reproducción y un botón para eliminar anuncios:

#import "MyScene.h" #import "Intro.h" #import "PurchasedViewController.h" @interface PurchasedViewController () -(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { ..... SKSpriteNode *removeAds = [SKSpriteNode spriteNodeWithImageNamed:@"removeAds"]; removeAds.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMaxY(self.frame)/6); removeAds.zPosition = 1; removeAds.name = @"RemoveAds"; [self addChild:removeAds]; } - (void)performTouches:(NSSet *)touches { for (UITouch *touch in touches) { CGPoint pointInSKScene = [self.view convertPoint:[touch locationInView:self.view] toScene:self]; SKNode *touchedNode = [self nodeAtPoint:pointInSKScene]; if ([touchedNode.name isEqualToString:@"RemoveAds"]) { [self runAction:[SKAction playSoundFileNamed:@"enter.mp3" waitForCompletion:NO]]; UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil]; UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"PurchasedViewController"]; [self presentViewController:vc animated:YES completion:nil]; } } }

El error que Xcode me da es "No visible @interface for Intro declara ''presentViewController: animated: completion''.

Estoy un poco perplejo porque no he intentado presentar un UIViewController de un SKScene antes y no puedo encontrar una solución en la web.