2014-12-02 4 views
0

Я пытаюсь отобразить FPPopover, и для этого мне нужен parentView. Все в порядке с первой попытки. Но после отображения PDF в QuicklLookViewController количество подзонов в окнах равно 0, поэтому я не могу понять последний элемент, чтобы использовать его как parentView ... С NSLog я вижу, что последний объект моей иерархии просмотров скрыт, объясняя вероятно, поэтому отсчет 0. lastObject, кажется, этот новый вид UITextEffectsWindow ...iOS - QuickLook, возвращающий без окна subview

FPPopoverController.m

Init метод

NSArray *windows = [UIApplication sharedApplication].windows; 
if(windows.count > 0) 
{ 
    _parentView=nil; 
    _window = [windows lastObject]; 

    NSLog(@"Window.subviews count: %d", _window.subviews.count); // --> return 1 if no PDF was previously seen with QuickLook --> So popover is displayed the first time. 

    //keep the first subview 
    if(_window.subviews.count > 0) // ---> subviews.count is 0 after displaying a PDF with QuickLook --> method not called the second time and popover is not displayed 
    { 

     _parentView = [_window.subviews lastObject]; 
     [_parentView addSubview:self.view]; 
     [_viewController viewDidAppear:YES]; 

     NSLog(@"windows: %@" "window: %@", _windows, _window); // --> I can see that the last element is hidden after displaying the PDF (something not present before I display PDF with QuickLook...) 
     NSLog(@"Parentview: %@", _parentView); 
    } 

Любые идеи, почему это происходит ? Я не могу понять, почему QuickLook не возвращает никаких подзапросов или скрывает их ... Любой способ обойти эту проблему?

ответ

0

UITextEffectsWindow - это окно с клавиатурой. Во всяком случае, вы должны реорганизовать FPPopover (который больше не поддерживается), чтобы иметь возможность указать родительское представление (и передать представление вашего контроллера представления или что-то подходящее) вместо того, чтобы пытаться найти подходящий метод init.

Этот вид исследования иерархии представлений очень обескуражен, поскольку контроллеры удаленного вида и клавиатуры иногда манипулируют списком окон. Если вы действительно хотите открыть представление, чтобы добавить себя к ручному, лучше начать с представления контроллера корневого представления.

+0

Кажется, мудрее ... спасибо – Trichophyton