在SKScene上呈现一个viewController

Mc.*_*ver 5 iphone xcode objective-c ios sprite-kit

我试图呈现UIActivityViewController一个SkView 但是xcode给了我这个错误:

'GameOver'没有可见的@interface声明选择器'presentViewController:animated:completion:'

- (void)shareScore {

    //add view
    UIView *Sview  = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 512, 512)];
    UIImageView *image = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"shareScoreImg.png"]];
    image.frame = Sview.frame;
    [Sview addSubview:image];

    //add label
    CGRect fframe = self.view.frame;

    UILabel *score = [[UILabel alloc] initWithFrame:fframe];
    score.text = @"9999";
    score.textAlignment = NSTextAlignmentCenter;
    score.textColor = [UIColor darkGrayColor];
    score.center = CGPointMake(250, 440);
    score.font = [UIFont fontWithName:@"Pixel LCD7" size:50];
    [Sview addSubview:score];


    //capture view
    UIGraphicsBeginImageContextWithOptions(Sview.bounds.size, Sview.opaque, 0.0);
    [Sview.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage * screenshot = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    UIActivityViewController* activityViewController =
    [[UIActivityViewController alloc] initWithActivityItems:@[screenshot]
                                      applicationActivities:nil];

    [self presentViewController:activityViewController animated:YES completion:nil];

}
Run Code Online (Sandbox Code Playgroud)

如何在SKScene上显示预设的viewController?谢谢 .

Mc.*_*ver 21

我们可以使用"presentModalViewController"来使用此代码来访问根视图控制器

 UIViewController *vc = self.view.window.rootViewController;
    [vc presentViewController: activityViewController animated: YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

现在它工作正常!

  • 并不是的.既然你没有放任何代码.Mc.Lover提出了一个代码.我比他更喜欢他的回答.大声笑? (11认同)

Fog*_*ter 6

IIRC SKScene你创造的第一个是在里面SKView.

SKView是在里面UIViewController.

你可以使用任何你喜欢访问的方法,属性或委托或UIViewController通过SKViewSKScene.甚至使用通知.

然后,UIViewController您可以在没有问题的情况下呈现新的视图控制器.