1

我有一个应用程序,当我在屏幕上点击表格视图中的项目时,会打开全屏照片演示。

它是全屏的,所以我直接将它添加到[[[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?

4

2 回答 2

1

您可以创建自己的 UIWindow 并将您想要的任何内容放入其中,它将高于包括状态栏在内的所有内容。我没有一个方便的例子,但你可以找到它们。寻找构建您自己的 UIAlertViewController 的示例。我在以前的工作中使用它来构建一个警报,其中可以包含任意数量的项目。

于 2014-10-20T12:48:37.040 回答
0
Please try like this..

AppDelegate* appDelegate = [[UIApplication sharedApplication] delegate];
        UIViewController* topVC = appDelegate.navC.topViewController;
        if (topVC.presentedViewController)
            topVC = topVC.presentedViewController;
        [topVC presentViewController:alertViewController animated:NO completion:nil];
于 2014-10-20T11:43:26.337 回答