0

我有一个场景,我正在UIViewcontrollers动态创建并在其上添加 UIView 并将其推送到导航堆栈。这就是我创建我的方式view Controller

UIViewController *vc = [UIViewController new];
[vc.view addSubView:customView];
[self.navigationController pushViewController vc];

在设备上运行我的应用程序时,我的视图不会自动旋转。(如果 VC 有一个实现文件,我会返回YESshouldAutorotate使其工作。)任何指针/帮助表示赞赏。

根据乔治的回复编辑:

George 的代码适用于 ios6 及更高版本。supportedInterfaceOrientationsAPI 已可用于 ios6.0+,正在寻找 ios4.3+ 的一般修复程序谢谢..

4

2 回答 2

1

如果您的导航控制器是 rootviewcontroller 而不是将此类别添加到您创建它的位置,如果它没有帮助添加到必须旋转的 viewcontroller

@implementation UINavigationController(Rotate)

-(NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;
}

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;    
}

@end

也可能是您忘记在您的应用程序委托中添加

- (NSUInteger)supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskAll;
}

编辑:

对于 iOS 5,您只需将此方法添加到所需的视图控制器。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}
于 2013-05-02T08:53:59.560 回答
0

在您的视图控制器中尝试此委托

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {

return YES;
}
于 2013-05-02T09:14:31.310 回答