我有一个应用程序,当我在屏幕上点击表格视图中的项目时,会打开全屏照片演示。
它是全屏的,所以我直接将它添加到[[[UIApplication sharedApplication] windows] objectAtIndex:0]
我的视图控制器上的主窗口。
我为每个图像都有一个菜单,当我点击显示图像的 UIBarButton 时它会打开。我UIActionSheet(self.imageActionSheet)
用代码打开我的[self.imageActionSheet showFromBarButtonItem:sendButtonItem animated:YES];
它在 ios7 上运行得很好,但在 iPad 上的 ios8 上它无法打开。
我发现在 ios8 ActionSheet 中已弃用,我应该使用 UIAlertController。
我为它做了一个测试警报控制器
UIAlertController * actionSheet = [UIAlertController alertControllerWithTitle:@"" message:@"" preferredStyle:UIAlertControllerStyleActionSheet];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
}]];
UIPopoverPresentationController *popover = actionSheet.popoverPresentationController;
if (popover)
{
UIView *buttonView = [sendButtonItem valueForKey:@"view"];
popover.sourceView = buttonView;
popover.sourceRect = buttonView.bounds;
popover.permittedArrowDirections = UIPopoverArrowDirectionAny;
}
UIWindow * wind = [[[UIApplication sharedApplication] windows] objectAtIndex:0];
[wind.rootViewController presentViewController:actionSheet animated:YES completion:nil];
它显示,但它显示在我的全屏视图下,包含在[[[UIApplication sharedApplication] windows] objectAtIndex:0]
类似的子视图中。它包含在 keyWindow 中,因为我需要重叠所有界面。
我找到了一种仅通过 ViewContoller 呈现 UIAlertController 的方法,但我的所有 viewControllers 都在我的全屏视图下。
我如何在 UIWindow 上显示 UIAlertController?或者可能来自 UIBarButtonItem?