2016-08-18 66 views
1

我正在嘗試創建播放音頻文件的音樂播放器應用程序。雖然控制中心播放器仍在播放音頻,但我已經成功創建了播放器,但是當我回溯(或解散它)時,視圖狀態會丟失。現在,當我嘗試返回播放器時,視圖重新加載並且兩個音頻同時播放(當然,從不同的起點開始)。我相信問題在於我解僱時並不保留觀點。我認爲的一種方式是跟蹤所有的變化,並使用「保存」設置加載視圖,但由於這是音樂播放器,因此有太多事情需要追蹤。所以我的問題是:保留返回導航視圖

  1. 是否有更好的策略來保存視圖狀態? (我試圖隱藏和屏幕變黑,我不知道如何使用容器視圖)
  2. 更重要的是,我怎樣才能最小化我的播放器,並讓用戶導航並允許他/她在不影響體驗的情況下返回玩家。
+0

你從哪裏航行回來?另一種觀點,模式如何呈現?推入導航控制器?第二個觀點是第一個觀點的強烈還是弱點?發佈一些代碼可能是有意義的,以便人們可以瞭解層次結構。 – diatrevolo

+0

你可以使用核心數據來保存狀態,但是如果你還沒有使用它...那麼有一點學習曲線。就玩家而言,我會在viewController的deinit {}或者覆蓋func prepareForSegue中解僱它,除非你真的希望它的狀態繼續到下一個控制器。如果是這種情況,那麼只需在返回到初始viewController時對狀態進行檢查,並在您首次加載viewController時相應地通過不啓動音頻或刪除以前的音頻並再次啓動它來拒絕。 – Sethmr

+0

@diatrevolo - TabBar Ctrlr >>導航Ctlr >> TableView >>音頻播放器。當我回到表格視圖/最小化音頻播放器的視圖時,我試圖保留音頻播放器。 – zaam

回答

0

解決的辦法是創建並附加一個子視圖,然後在超級視圖中關閉子視圖。

+0

能否包含更多細節,以便可以幫助其他人解決同樣的問題? – pancho018

+0

當然。我開始工作的解決方案(差不多,因爲我還在對抗Swift 3升級),就是用音樂播放器元素創建一個單獨的xib文件,然後將xib加載爲超級視圖的子視圖。 – zaam

+0

是的,單身人士爲後端代碼工作。所以我的音樂播放器助手被實例化爲單例,並使用該實例來播放或替換爲新的文件播放。此外,添加子視圖可確保視圖始終存在並且不會消失 - 但此方法可能會消耗某些屏幕空間。 – zaam