我试图为拥有背景音乐的iPhone制作游戏。 所以这就是它的布局: 我有一个主菜单,通过AVAudioPlayer在后台运行音乐(我已经制作了一个自定义方法,每次加载视图时都会调用它)。 我有关于按钮的这个,当你按下它“addSubview:aboutView”时它就可以了,但是当我按下“addSubview:mainView”的后退按钮时,它会回到主菜单,但播放相同音乐曲目,已经播放的音乐曲目。 每次在if(someInt> 1){}中调用viewDidLoad时我都尝试创建一个++ s的int,但是每次都会忘记它的值,所以它仍然会重复音乐。 救命! 我知道这很简单,但我似乎无法解决它,只是其中的一天。
答案 0 :(得分:0)
如果您addSubview
您可能再次实例化主视图,那就是它再次viewDidLoad
的原因。如果你有构成分支的视图链,你应该首先构建一个很好的逻辑视图控制器层次结构,可能是基于UINavigationController。
答案 1 :(得分:0)
您可能需要重新构建您的应用。我将AVAudioPlayer放在一个单独的包装器中(我们称之为 MusicPlayer )。单例将确保不会创建额外的AVAudioPlayer实例。如果你想我可以从我的项目中发布一些示例代码,尽管它使用了AVPlayer。
答案 2 :(得分:0)
您应该重新构建您的应用。
例如,这可能是一个:
App delegate |_ App Main View Controller |_ AVAudioPlayer |_ UINavigationController |_ Start screen |_ Screen #1 |_ Screen #2 |_ etc.