viewController 不响应横竖屏转换相关消息的问题
罗朝辉(http://blog.csdn.net/kesalin)
转载请注明出处
有同学在 CocoaChina 上提出这样一个问题:A viewController 中包含一个 B viewController(B 的 view 作为 A 的 view 的 subView),在横竖屏转换时,A 可以得到屏幕旋转相关的消息(如:shouldAutorotateToInterfaceOrientation),而
B 却得不到,即使 A,B 都实现了这些函数。原贴见这里:http://www.cocoachina.com/bbs/read.php?tid=40973&page=1#393765
这个问题我以前也碰到过,稍微研究了一下,其原因是 A 是在 AppDelegate 里 window 的 controller 层次体系中(比如,是 navigation push进去的等等),而 B 只是创建出来,让 A 方便使用其 view 而已,B 并没有加入这个层次体系中( B 的 parentViewController 为 nil,哪怕 B.view.superview 是 A.view)。所以 A 会跟着那个层次体系得到系统旋转相关的消息,而 B 被凉在一边,得不到相关消息。
解决办法有三个方案:
第一,是将 B 加入 controller 导航层次中去;
第二,是在 A 中实现所有旋转相关的消息,并在 A 相应实现的消息中,显式调用 B 对应的相关消息;
第三,是在 A 的 layoutSubviews 中显式调用 B 的 layoutSubviews 函数,在 B 的 layoutSubviews 消息实现里,根据 statusBar 的 orientation 来调整其布局。这种方法只是调整 B 的布局而已,不会真的改变 B 的 orientation 属性值。
分享到:
相关推荐
IOS父ViewController为竖屏,presentViewController强制旋转为横屏
iOS之presentViewController模态全屏适配解决方案.docx
ios实现viewcontroller切换传值的三种方法
iOS 吐丝提示框,iOS 6以上全部适配,横竖屏也都适配了,操作简单。只需在viewController中指定 横竖屏和提示框内容。
this is about ios viewcontrolloer codes, some are very easy and important for us.so we had better learn to make ios project later..
iOS 消息对话控件 MessagesViewController ,MessagesViewController 是一个实现了消息对话的控件。
iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画---push pop present dismis
ios7 viewcontroller 自定义切换效果,项目简单,demon清晰
IOS学习之UiViewController带值跳转以及协议的实现,原来这么做的啊 http://blog.csdn.net/xiaoyuan511
教程名称 iOS创意班4个月教程01_iOS_iOS第一个应用1 开始学习 02_iOS_iOS第一个应用2 开始学习 03_iOS_ViewController视图控制器1 开始学习 04_iOS_ViewController视图控制器2 开始学习 05_iOS_ViewController...
本篇文章主要介绍了iOS 获取当前的ViewController的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
iOS 多个UIViewController之间滑动切换
CCZoomTransition【已废弃,请使用BOTransition:'CCZoomTransition' is zoom transition for IOS ViewController. Only requires one line of code ViewController present的转场特效,只需要一行代码,就可以的到...
主要介绍了iOS开发中ViewController的页面跳转和弹出模态,ViewController是MVC开发模式中一个重要的类,需要的朋友可以参考下
作者mengxianliang,源码XLBubbleTransition,iOS ViewController间切换的转场动画。
0代码实现viewcontroller 使viewcontroller更干净
将Controller瘦身:通过把UITableViewDataSource,单独分离出来个类。进而将其瘦身,支持单个section 以及多个section。运用不同的初始化即可,block回调
pop modal
IOS实现在两个ViewController间传值
开关viewcontroller像iOS任务管理器