从模态视图控制器,应用程序打开UIImagePickerController来制作照片. UIImagePickerController具有“全屏”演示风格.解雇图像选择器呈现模态视图控制器后变为20px更高并重叠初始视图控制器的状态栏.
我试图用简单的UINavigationController替换UIImagePickerController,它也破坏了我的模态视图控制器.
有屏幕截图:
他们只有恢复’Page’视图控制器大小的方法是在返回’Page’视图控制器后改变vIEwController.vIEw.supervIEw.supervIEw.supervIEw.supervIEw框架的高度.但这真的很奇怪.
在解除嵌套模态视图控制器后,还有另一种修复“页面”模态视图控制器演示的方法吗?
更新:
我使用这些奇怪的代码来解决我的问题:
#define STATUS_bar_HEIGHT 20#define IPAD_PORTRAIT_HEIGHT 1004#define IPAD_LANDSCAPE_HEIGHT 748UIVIEw *supervIEw = nil;// In case of this vIEw controller included in navigationController we have to use supervIEw of navigation's controller vIEwif (self.navigationController) supervIEw = self.navigationController.vIEw.supervIEw;else supervIEw = self.vIEw.supervIEw;CGRect r = supervIEw.frame;// Sometimes we have to fix height + origin,sometimes only height (becase vIEw has bottom magnifying)// In landscape orIEntation we have to fix 'wIDth' instead of 'height',because that vIEw controller always works in 'portrait' modeif (self.interfaceOrIEntation == UIInterfaceOrIEntationPortrait && r.size.height > IPAD_PORTRAIT_HEIGHT) { r.origin.y = STATUS_bar_HEIGHT; r.size.height = IPAD_PORTRAIT_HEIGHT;}else if (self.interfaceOrIEntation == UIInterfaceOrIEntationMaskPortraitUpsIDeDown && r.size.height > IPAD_PORTRAIT_HEIGHT) { r.size.height = IPAD_PORTRAIT_HEIGHT;}else if (self.interfaceOrIEntation == UIInterfaceOrIEntationLandscapeleft && r.size.wIDth > IPAD_LANDSCAPE_HEIGHT) { r.size.wIDth = IPAD_LANDSCAPE_HEIGHT; r.origin.x = STATUS_bar_HEIGHT;}else if (self.interfaceOrIEntation == UIInterfaceOrIEntationLandscapeRight && r.size.wIDth > IPAD_LANDSCAPE_HEIGHT) { r.size.wIDth = IPAD_LANDSCAPE_HEIGHT;}supervIEw.frame = r;
我不相信没有更优雅的解决方案.任何想法如何改善它?
更新2:我刚刚开了一个BUG.你可以在那里关注它:rdar://15949644
更新3:有我的示例项目:link
解决方法 没有好的解决方案,它是一个Apple BUG,在修复之前,你必须解决它.它尚未在iOS 7.1中修复.我致力于解决这个问题,并意识到我也在实施相同的解决方案.这很难看,但它确实有效.关于这个设计的一个词.我猜想Apple为何忽略了这个问题是因为全屏呈现一个视图控制器并不是Apple会做的事情.这当然不是一个借口,有时除了提供全屏之外没有其他选择(我们必须打开一个摄像机视图,例如必须以全屏方式打开).也许你可以改变你的设计以适应Apple的错误.
总结以上是内存溢出为你收集整理的iPad / iOS7:“页面”模式视图控制器在显示“全屏”视图控制器后的奇怪行为全部内容,希望文章能够帮你解决iPad / iOS7:“页面”模式视图控制器在显示“全屏”视图控制器后的奇怪行为所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)