解除模态控制器后的黑屏

时间:2015-12-21 22:48:23

标签: ios objective-c uiviewcontroller modal-dialog

我发现在解除了在紧凑视图中呈现全屏的模态视图控制器并在水平常规视图中作为弹出窗口后,屏幕在动画后变黑。

我的视图层次结构如下

查看(我在窗口上的rootViewController)
---> UISplitViewController.view(设置为子viewController)
--------> rootViewController.view(设置为splitView的mainViewController)
--------> detailViewController.view(设置为拆分视图的detailViewController)

通过iPhone 6模拟器(拆分视图总是折叠)我使用以下代码呈现模态viewcontroller:

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];  
[navigationController.navigationBar setBarStyle:UIBarStyleBlack];  
[navigationController setModalPresentationStyle:UIModalPresentationPopover];  

navigationController.popoverPresentationController.sourceView = view;  
navigationController.popoverPresentationController.barButtonItem = barButtonItem;  
navigationController.popoverPresentationController.delegate = self;  

[self presentViewController:nav animated:YES completion:nil];  

我通过调用:

从该viewController中解除显示的控制器

[self dismissViewControllerAnimated:true completion:nil];

如果我将动画设置为“假”我没有任何问题,但它看起来很糟糕并且没有意义。

我看到一些关于这个和自定义presenatation方法的帖子,但我没有在这里使用任何自定义。

在iPhone上,ModalPresentationStyle应该默认为UIModalPresentationOverFullScreen,所以我尝试将presentationStyle直接设置为,并且它有效! 如果我将presentationStyle设置为“FullScreen”(不是全屏),我会得到相同的行为,在解雇后会出现黑屏。

对此有何想法或经验?

1 个答案:

答案 0 :(得分:0)

我已经提出了以下相关工作,但我仍然认为不应该这样做。

false