转发
对于iPhone app,UIViewController类提供了基本的视图管理模式。当设备改变方向的时候viewcontroller的视图会自动随之旋转的。如果视图和子视图的autoresizing属性设置是对的,这时候视图又没有随着设备一起旋转,可能是以下的原因:
1.view controller没有完成代理方法
-(BOOL)shouldAutorotateToInterf
也要实现了shouldAutorotateToInterf
2.view controller的UIView属性嵌入在UIWindow中,并非是一个附加的viewcontroller
你可能会发现shouldAutorotateToInterf
例如
[myWindowaddSubview:primaryViewController.view];
3.你添加了viewcontroller的UIView属性到UIWindow作为subview,但是过早的release它。UIWindow会retain视图,而不是viewcontroller。你不能过早的release他。在UIApplicationDelegate子类中定义他为retain属性。
4.在UITabBarController或者UINavigationController中的子viewcontroller没有对同一方向的支持。为了确保所有的子view controller旋转正确,你的每一个viewcontroller,每一个tab或者额navigation都要完成shouldAutorotateToInterf
5.重写-(id)init:或者-(id)initWithNibName:(NSString *)nibName bundle:(NSBundle*)nibBundle 方法的时候没有调用super。对于对象的初始化,在你的viewcontroller的init或者initWithNibName方法中必须要调用super。