アプリケーションに 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 開発が初めてで、ここで考えているかどうかわかりません。
どんな助けでも大歓迎です。