Как определить, когда RPSystemBroadcastPickerView отклонен?
В приложении я использую RPSystemBroadcastPickerView
начать общесистемную запись экрана. Мне нужно отреагировать на пользователя, начиная запись экрана или отклоняя показанное окно выбора. В обоих случаях системное представление отклоняется.
Я предполагал, что отклонение представления системы выбора вызовет viewDidAppear
событие на текущем показанном контроллере представления. Такого не бывает. Я пытался проверить, если AppDelegate
триггеры applicationDidBecomeActive
или же applicationWillEnterForeground
- снова безуспешно (это срабатывает, когда пользователь открывает центр управления).
У кого-нибудь есть предложения, что еще попробовать?
2 ответа
До iOS 13: крючокRPSystemBroadcastPickerView
containerVC
iOS 14.0 или новее: отслеживайте события фокуса и расфокусировки приложения.
Вы можете добиться этого косвенно, используя Timer
а также UserDefaults
.
Начать Timer
в ViewController из основного приложения и проверьте изменение соответствующего значения с Broadcast Extension
.
class SampleHandler: RPBroadcastSampleHandler {
override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
appGroupDefaults.set(true, forKey: appGroupUserDefaultKeys.isScreenBroadcastStarted.rawValue)
}
override func broadcastFinished() {
appGroupDefaults.set(true, forKey: appGroupUserDefaultKeys.isScreenBroadcastStopped.rawValue)
}
}