我有一个场景,我动态创建UIViewcontrollers
并在其上添加UIView并将其推送到导航堆栈。这就是我创建view Controller
UIViewController *vc = [UIViewController new];
[vc.view addSubView:customView];
[self.navigationController pushViewController vc];
在设备上运行我的应用程序时,我的视图不会自动旋转。 (如果VC有一个实现文件,我会在YES
中返回shouldAutorotate
以使其正常工作。)
任何指针/帮助都表示赞赏。
根据George的回复编辑:
George的代码适用于ios6及以上版本。 supportedInterfaceOrientations
API已经可用于ios6.0 +,正在寻找ios4.3 +的一般修复程序
感谢..
答案 0 :(得分:1)
如果您的导航控制器是rootviewcontroller,而不是将此类别添加到您创建它的地方,如果它无助于添加到必须旋转的viewcontroller
@implementation UINavigationController(Rotate)
-(NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}
@end
也可能是您忘记添加应用代理
- (NSUInteger)supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskAll;
}
对于iOS 5,您只需将此方法添加到所需的viewcontroller。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
答案 1 :(得分:0)
在viewcontroller中尝试此委托
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return YES;
}