如何在SpriteKit中显示警报视图

时间:2014-06-06 08:31:07

标签: ios7 sprite-kit

我希望在我的SpriteKit游戏中显示UIAlertView(说没有足够的硬币来选择项目)。我在我的(仅)ViewController中设置了UIAlertView *alertView;属性 并初始化它。

但我无法从我的场景中访问此内容(尝试调用公共方法,但它无法正常工作)。

如何从场景中访问我的ViewController及其属性?

1 个答案:

答案 0 :(得分:2)

至于如何从SKScene或任何SKNode访问ViewController(及其属性),我会在创建后将指针保存在这些SKNode中。

@interface YourScene : SKScene
  @property (weak,nonatomic) UIViewController * presentingViewController;
@end

// inside the ViewController
YourScene * scene = [YourScene new];
scene.presentingViewController = self;    
[skView presentScene:scene];

标题问题的答案:在SpriteKit中显示alertViews

您不必将alertView属性放在ViewController中;你可以把它放在你的SKScene,或任何你喜欢的地方。您甚至不必设置委托,但是如果您想让您的SKScene子类符合UIAlertViewDelegate协议。

@interface YourNode : SKNode<UIAlertViewDelegate>
  - (void) displayAlert;
@end

// ...

@implementation YourNode
  - (void) displayAlert {
    UIAlertView * alertView = [UIAlertView alloc] initWithTitle:@"Your title" message:@"Your message is this message" delegate:self cancelButtonTitle:@"Cancel me" otherButtonTitles:@"Whatever", nil];
    [alertView show];
  }
@end