【发布时间】:2016-03-28 02:48:14
【问题描述】:
我发现,在关闭以紧凑视图全屏显示并在水平常规视图中作为弹出框显示的模态视图控制器后,动画后屏幕变黑。
我的视图层次结构如下
查看(我的 rootViewController 在窗口上)
--->UISplitViewController.view(设置为子viewController)
--------> rootViewController.view(设置为splitView的mainViewController)
--------> detailViewController.view(设置为拆分视图的detailViewController)
通过 iPhone 6 模拟器(拆分视图总是折叠)我展示了一个模态视图控制器,代码如下:
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];
如果我将动画设置为“false”,我没有任何问题,但它看起来很糟糕并且没有意义。
我看到了一些关于这个和自定义演示方法的帖子,但我在这里没有使用任何自定义。
在 iPhone 上,ModalPresentationStyle 应该默认为 UIModalPresentationOverFullScreen,所以我尝试将presentationStyle 直接设置为该值,并且成功了! 如果我将presentationStyle设置为“FullScreen”(而不是全屏),我会得到相同的行为,即在关闭后出现黑屏。
对此有什么想法或经验吗?
【问题讨论】:
标签: ios objective-c uiviewcontroller modal-dialog