2012-01-25 56 views
0

我試圖爲有背景音樂的iPhone製作遊戲。 所以這是它是如何佈局: 我通過AVAudioPlayer在後臺運行音樂(我已被調用每一個視圖加載時間自定義方法)主菜單。 我有這個關於按鈕,當你按下它,它「addSubview:aboutView」 S和它確實是好的,但後來當我按下後退按鈕,「addSubview:MAINVIEW」正是它返回到主菜單,而是播放相同的音樂曲目,在已經播放的音樂曲目的頂部。 我試圖做一個int,每次在if(someInt> 1){}中調用viewDidLoad時,但int每次都忘記它的值,所以它仍然複製音樂。 幫助! 我知道這很簡單,但我似乎無法解決這個問題,那只是其中的一個。如何在視圖中獲取某些內容,但只能調用一次?

+0

對不起有雙重職位,我不能讓它正常發佈的某些原因。 –

回答

0

您應該重構您的應用程序。

例如,這可能是一個:

如果
 
App delegate 
    |_ App Main View Controller 
     |_ AVAudioPlayer 
     |_ UINavigationController 
      |_ Start screen 
      |_ Screen #1 
      |_ Screen #2 
      |_ etc. 
+0

我會使用UINavigation Controller,但問題是它總是必須在頂部有標題欄。有沒有辦法消除這種情況? –

+0

是啊,嘗試讀取'UINavigationController'documentation:http://developer.apple.com/library/ios/documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html#//apple_ref/occ/instp/UINavigationController/navigationBarHidden – basvk

0

如果addSubview你可能會再次實例化的主視圖,這就是爲什麼它再做viewDidLoad。如果你有視圖鍊形成分支,你應該首先建立一個很好的邏輯視圖控制器層次結構,可能基於UINavigationController。

0

您可能需要調整你的應用程序。我把AVAudioPlayer放在一個單獨的包裝中(我們稱它爲MusicPlayer)。單身人士將確保不會創建額外的AVAudioPlayer實例。如果你想我可以從我的項目中發佈一些示例代碼,儘管它使用了AVPlayer。

相關問題