我的应用程序中有 2 个 ViewController。
ViewController1 播放音频,ViewController2 显示一些文本。
当我在 ViewController2 中时,我想使用遥控器来控制音频。例如,用户在 ViewController2 中并想要停止音频。
我的代码:
ViewController1.m 完美运行
- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent
{
MARK;
if (receivedEvent.type == UIEventTypeRemoteControl) {
switch (receivedEvent.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
DLog(@"remotecontrol_toggle");
[self togglePlayPause];
break;
case UIEventSubtypeRemoteControlPause:
DLog(@"remotecontrol_pause");
[self pause];
break;
case UIEventSubtypeRemoteControlPlay:
DLog(@"remotecontrol_play");
[self play];
break;
case UIEventSubtypeRemoteControlStop:
DLog(@"remotecontrol_stop");
[self stop];
break;
default:
break;
}
}
}
我的问题是,把这一切放在一起的最好方法是什么?我必须处理 ViewController2 中的事件吗?
我知道在 AppDelegate.m 中,我可以这样做:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
MARK;
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
MARK;
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
}
这样,我的应用程序在每个视图中控制遥控器,但这并不能解决我的问题,因为在 ViewController2 中没有处理接收到的事件。
但是我不能处理 AppDelegate.m 中收到的事件,所以我必须处理每个 ViewController 中的事件?
我是iOS开发的新手,不知道我是否在这里思考。
任何帮助表示赞赏。