首页 > 解决方案 > pod WEPopover 弹出菜单未显示为 currentTopViewcontroller。相反,它会回到 currentTopviewController 视图层次结构的后面

问题描述

在 iOS 13 中,弹出视图菜单未显示在可见 UIWindow 上,尽管它存在于 keyWindow 的视图层次结构中,如此处所示

在此处输入图像描述

这是我呈现弹出菜单的方式:

WEPopoverController *popover = [[WEPopoverController alloc] initWithContentViewController:menuVc];
    self.popoverController = popover;
    if ([popover respondsToSelector:@selector(setContainerViewProperties:)]) {
        [popover setContainerViewProperties:[CPGlobals popoverStyling]];
    }
    popover.delegate = self;
    //self.popoverController.passthroughViews =
    //[NSArray arrayWithObject:self.navigationController.navigationBar];

    menuVc.containerPopover = popover;

    [self.popoverController presentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItems[0]
                                   permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

预期的:

在此处输入图像描述

实际的:

在此处输入图像描述

标签: iosobjective-cios13

解决方案


在 WEPopoverController.m 中,将方法 keyView() 更改为:

if (w.subviews.count > 0) {
    return [w.subviews objectAtIndex:0];
} else {
    return w;
}

至:

if (w.subviews.count > 0) {
    return [w.subviews objectAtIndex:[w.subviews count]-1];
} else {
    return w;
}

推荐阅读