Ios 背景音乐继续重新启动。如何阻止它。

Ios 背景音乐继续重新启动。如何阻止它。,ios,swift,avfoundation,segue,Ios,Swift,Avfoundation,Segue,我创建了一个背景音乐的sharedInstance,并在第一个视图控制器的viewDidLoad中初始化它。但当我改变屏幕(通过segue)并返回到第一个屏幕时,音乐会重新启动。我相信这是因为viewDidLoad再次被调用,但我不希望每次回到这个屏幕时音乐都会重新启动 我怎样才能使音乐不受干扰地继续播放 尝试在AppDelegate中启动背景音乐,不要将其绑定到任何特定的视图控制器 虽然您通常应该避免在AppDelegate中放入太多代码,但启动/初始化服务是一项启动任务,因此在那里是有意义的

我创建了一个背景音乐的sharedInstance,并在第一个视图控制器的viewDidLoad中初始化它。但当我改变屏幕(通过segue)并返回到第一个屏幕时,音乐会重新启动。我相信这是因为viewDidLoad再次被调用,但我不希望每次回到这个屏幕时音乐都会重新启动


我怎样才能使音乐不受干扰地继续播放

尝试在AppDelegate中启动背景音乐,不要将其绑定到任何特定的视图控制器


虽然您通常应该避免在AppDelegate中放入太多代码,但启动/初始化服务是一项启动任务,因此在那里是有意义的。

我应该在“didFinishLaunchingWithOptions”中初始化它?我看到了其他解决方案,包括创建一个变量“isMusicPlaying”和一个if语句来每次检查。1。是的,如果您希望音乐在启动后立即启动,请将其放入
didfishlaunchingwithoptions
。2.保留一个变量也是一个潜在的解决方案,但这意味着您需要管理它,这可能会导致错误。您确定是在
viewdiload
中启动音乐,而不是在
viewdilease
中启动音乐吗
viewDidLoad
在ViewController的生命周期中只能调用一次。您可以将deinit函数添加到FirstViewController中,查看它是否因某种原因被取消初始化,或者在开始播放音乐的位置设置断点,⌘-Optn点击它,并添加一条带有
%B-%H
谢谢@Alex的日志消息,我在AppleLegate中这样做了。但我将尝试上述其他解决方案。