我有一个非常标准的视图层次结构,主要是UITabBarController
包含多个UINavigationController
。
我正在创建一个新的UINavigationController
并从其中一个标签中以模态方式显示它。
我希望它与UIModalPresentationCurrentContext
显示,所以我设置它是这样的:
[newNavCon setModalPresentationStyle:UIModalPresentationCurrentContext];
然后,我这样呈现:
[oldNavCon presentViewController:newNavCon animated:YES completion:nil];
但是当它出现时,它是全屏,而不是我设置的当前上下文。
当我查看断点时,newNavCon
上的模式演示样式会在UIModalPresentationFullScreen
之后立即更改为presentViewController
。
让我感到困惑的是,这种行为仅在iOS7上发生 。它在iOS 8-10上完全按预期工作。
为什么会这样?在iOS7上有一些我不知道的特定怪癖吗?为什么会像这样覆盖演示文稿样式?
修改: 为了澄清,这是我正在使用的视图层次结构:
UIViewController
(作为容器,全屏)UITabBarController
(不是全屏,由容器控制)
definesPresentationContext
UINavigationController
(作为标签根,显示模态窗口)
definesPresentationContext
UINavigationController
(由上述UIViewController
以模态方式呈现)
modalPresentationStyle
= UIModalPresentationCurrentContext
UIViewController
答案 0 :(得分:0)
我猜测你正在iPhone设备或模拟器上进行测试。在iOS 7及之前,UIModalPresentationCurrentContext
是仅限iPad 功能。