Spritekit返回rootViewController

时间:2013-10-03 09:16:24

标签: ios ios7 sprite-kit

我目前正在学习SpriteKit。我在主ViewController上有一个背景音乐播放器实例。但是,当我尝试从SKScene课程访问它时,我无法停止/更改播放器。

ViewController *vc = (ViewController *) self.view.window.rootViewController;
AVAudioPlayer *player = vc.backgroundMusicPlayer;
[player stop]; //nothing happened

我是iOS开发人员的新手,管理SpriteKit背景音乐播放器的方式是什么?谢谢!

1 个答案:

答案 0 :(得分:3)

我建议使用背景音乐播放器单例,例如

<强> BackgroundMusicPlayer.h

@interface BackgroundMusicPlayer : NSObject

+ (instancetype)sharedPlayer;

@property (nonatomic, strong) AVAudioPlayer *audioPlayer;

@end

<强> BackgroundMusicPlayer.m

@implementation BackgroundMusicPlayer

+ (instancetype)sharedPlayer
{
    static BackgroundMusicPlayer *sharedPlayer;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedPlayer = [self new];
    });
    return sharedPlayer;
}

@end

然后,您可以通过拨打[[BackgroundMusicPlayer sharedPlayer] audioPlayer]从任意位置访问您的音频播放器。