我正在尝试构建一个与iTunes具有相同导航结构的应用程序。
当用户点击“正在播放”(第三个窗口)按钮时,应打开第二个视图控制器(假设第二个窗口)。当用户返回到上一个ViewController时,应用程序应该能够使SecondViewController保持活动状态(音乐在后台播放),以便随时从任何ViewController访问它。
如何使用导航或任何其他控制器建立这样的层次结构?
希望问题是明确的。

最佳答案

您应该将视图控制器视为:管理视图的控制器。您将一个函数(播放特定歌曲)绑定到用户界面视图(查看其图片、时间、音量)。
因此,您的层次问题不是正确的问题。相反,您应该考虑如何创建一个类(理想情况下称为singleton,称之为CurrentlyPlayingMusic)来管理当前播放的音乐,当用户界面需要显示当前正在播放的音乐时,它会从您的示例加载SecondViewController,此时,请求CurrentlyPlayingMusic显示所需内容所需的数据和元数据:歌曲名称、艺术家、时间等。。。
CurrentlyPlayingMusic应该是一个单子,一旦连接,它就留在内存中并正确播放音乐。任何时候你需要知道发生了什么,或者你需要对当前播放的音乐(开始/停止等)采取行动,你都可以查询CurrentlyPlayingMusic。从某种意义上说,它是一个覆盖AVAudioPlayer的轻量级包装器,还可以让您放入自己的属性中,以便在音乐的整个生命周期中一直保持。

关于ios - swift 。在ViewController之间进行转换,而不会回退,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28370634/

10-08 20:57