Когда RPSystemBroadcastPickerView добавляется в мое пользовательское представление и отправляется событие на его внутреннюю кнопку, пользовательский интерфейс не может ответить

При добавлении RPSystemBroadcastPickerView в мое пользовательское представление на iOS 12 и отправке сенсорного события на его внутреннюю кнопку пользовательский интерфейс блокируется и не может ответить на любое сенсорное событие.

Вот мой код: Когда я получаю уведомление, я вызываю этот метод для инициализации моего пользовательского представления:

- (void)presentMyCustomView
{
    MyCustomView *myCustomView = [[[[UIApplication sharedApplication] delegate] window] viewWithTag:kMyCustomViewTag];
    if (!myCustomView)
    {
        myCustomView = [[MyCustomView alloc] init];
        myCustomView.tag = kMyCustomViewTag;
        [[[[UIApplication sharedApplication] delegate] window] addSubview:myCustomView];
        [myCustomView release];
    }
}

В методе init класса MyCustomView я создаю RPSystemBroadcoatPickerView и добавляю его в MyCustomView:

RPSystemBroadcastPickerView *broadcastPicker = [[RPSystemBroadcastPickerView alloc] initWithFrame:CGRectMake(0, 0, 100.f, 100.f)];
broadcastPicker.preferredExtension = @"xxxxx";
self.broadcastPicker = broadcastPicker;
[self addSubview:broadcastPicker];
[broadcastPicker release];

Но когда я запускаю свой проект, иногда пользовательский интерфейс блокируется, и все другие элементы в MyCustomView не могут быть затронуты. Журнал сбоев RPBroadcastPicker будет обнаруживаться в журналах устройств, но не каждый раз при общем журнале сбоев.

Я использовал много методов, например, добавить broadcastPicker непосредственно в окно ключа, но не могу помочь.

Кто-нибудь может мне помочь? Большое спасибо.

0 ответов

if (@available(iOS 12.0, *)) {
    RPSystemBroadcastPickerView *pickerView = [RPSystemBroadcastPickerView new];
    pickerView.preferredExtension = @"com.apple.sharescreen";
    SEL buttonPressed = NSSelectorFromString(@"buttonPressed:");
    if ([pickerView respondsToSelector:buttonPressed]) {
        [pickerView performSelector:buttonPressed withObject:nil];
    }
}
Другие вопросы по тегам