我是iOS / swift编程的新手。
我正在使用的应用程序本质上是一个音乐播放器,音乐也必须在后台播放,可以从锁定屏幕播放/暂停/跳过。该应用程序有几个视图,其中一个是主视图,包含与播放器本身相关的所有代码(PlayerVC.swift),其他视图包含其他附加页面/功能。所有视图都可以通过菜单访问,使用ECSlidingViewController实现。
在AppDelegate中,我添加了检测远程控件使用所需的代码:
override func remoteControlReceivedWithEvent(event: UIEvent) {
if (event.type == UIEventType.RemoteControl) {
switch (event.subtype) {
case UIEventSubtype.RemoteControlPlay:
...
case UIEventSubtype.RemoteControlPause:
...
case UIEventSubtype.RemoteControlTogglePlayPause:
....
case UIEventSubtype.RemoteControlNextTrack:
PlayerVC.onNext(nil)
default:
break
}
}
}
对于每种情况,我需要在PlayerVC中调用一个方法(例如onNext方法,我知道PlayerVC.onNext(nil)
是不够的),使用PlayerVC的当前实例而不是创建新实例。我对如何实现这一点感到非常困惑,我在这里发现了许多类似的问题,但没有一个问题解决了我的问题,一些主题是客观C(我正在迅速开发)其他一些产生的错误。根据我的测试,似乎所呈现的视图控制器总是ECSlidingViewController,我猜(但我不确定)在我的情况下棘手的部分就是这个。