自动旋转动态UIViewcontroller

时间:2013-05-02 08:50:38

标签: iphone ios objective-c ipad uiviewcontroller

我有一个场景,我动态创建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 +的一般修复程序 感谢..

2 个答案:

答案 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;
}