我如何获取视图中的内容加载到只调用一次?

时间:2012-01-25 14:28:50

标签: iphone xcode sdk

我试图为拥有背景音乐的iPhone制作游戏。 所以这就是它的布局: 我有一个主菜单,通过AVAudioPlayer在后台运行音乐(我已经制作了一个自定义方法,每次加载视图时都会调用它)。 我有关于按钮的这个,当你按下它“addSubview:aboutView”时它就可以了,但是当我按下“addSubview:mainView”的后退按钮时,它会回到主菜单,但播放相同音乐曲目,已经播放的音乐曲目。 每次在if(someInt> 1){}中调用viewDidLoad时我都尝试创建一个++ s的int,但是每次都会忘记它的值,所以它仍然会重复音乐。 救命! 我知道这很简单,但我似乎无法解决它,只是其中的一天。

3 个答案:

答案 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.