我很难为iOS 7做这个工作,但它适用于iOS 8。
我有一个从父vc呈现的透明模态视图,它是导航视图控制器层次结构的一部分。模态视图按预期动画到位,但底层父视图消失。
在模态视图完成其工作后,它被解除并返回到呈现视图控制器。但我希望当模态视图在屏幕上时,呈现的vc保持不变。
我已经尝试了几乎所有来自SO的建议,例如设置呈现vc的模态呈现样式,设置定义上下文等等,但没有一个解决方案对我有用。
为什么这在iOS 8中如此简单,在iOS 7中如此之难?
__block typeof(self) blockSelf = self;
void (^completionBlock)(POJSONResponse *obj, NSError *err) = ^(POJSONResponse *obj, NSError *error) {
if (error == nil) {
// display a transparent modal view
UINavigationController *navController = blockSelf.navigationController;
ModalViewController *mvc = [[ModalViewController alloc] init];
[mvc setModalPresentationStyle:UIModalPresentationOverCurrentContext];
navController.modalPresentationStyle = UIModalPresentationCurrentContext;
[navController presentViewController:mvc animated:YES completion:nil];
答案 0 :(得分:0)
在iOS 7中这很难,因为{8}在iOS 8中是新的。如果您想在iOS 7中使用此效果,则需要自己完成。
请参阅How to present a semi-transparent (half-cut) viewcontroller in iOS?,特别是显示如何将UIModalPresentationOverCurrentContext
与自定义UIModalPresentationCustom
一起使用的答案。