如何在解雇时让SKView在其父SKView中触发方法

时间:2014-02-18 04:01:15

标签: ios sprite-kit

我有一个SKView运行游戏,并希望在关卡完成(或失败)时覆盖较小的SKView。当用户选择一个动作(重启,下一个等等)时,我需要关闭这个SKView([self removeFromView]并在游戏SKView中触发一个合适的方法。这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

是的,为“levelCompleted”场景创建一个委托协议:

@protocol YOURlevelCompletedSceneDelegate <NSObject>
    - (void)touchesBeganOnScene:(YOURlevelCompletedScene *)scene;
@end

显然给levelCompletedScene一个委托:

@property (nonatomic, weak) NSObject <YOURlevelCompletedSceneDelegate> *delegate;

让你的gameScene遵守协议:

@interface YOURGameScene () <YOURlevelCompletedSceneDelegate>

每当你设置它时,将它设为levelCompletedScene的委托:

levelCompletedScene.delegate = self; 

然后在gameScene的某处实现委托方法并做任何你想做的事情:

- (void)touchesBeganOnScene:(YOURlevelCompletedScene *)scene{
   // enjoy!
}

答案 1 :(得分:1)

虽然@ nickfalk的答案是合适的,但您也可以考虑使用NSNotification。您的父viewController将成为侦听器,只需发布​​适用的通知即可触发该方法。