视图控制器在 iOS 7 中不旋转

Posted

技术标签:

【中文标题】视图控制器在 iOS 7 中不旋转【英文标题】:View controller is not rotating in iOS 7 【发布时间】:2013-09-16 03:41:12 【问题描述】:

我的应用程序在 ios 6 中运行良好。但是当我将应用程序升级到 ios 7 时,视图控制器没有旋转。我已将 rootviewcontroller 设置为 mainviewcontroller。 self.window.rootViewController=主视图控制器; ios 7 中的哪些变化使我的应用无法旋转..?

【问题讨论】:

我也有类似的问题。 我们可以了解更多信息吗?您是否在 mainViewController 中使用了正确的旋转委托方法?您可以复制粘贴您引用的代码块而不是重新输入吗?您还可以粘贴application didFinishLaunchingWithOptions: 方法中的代码吗?您是否在 xcode 和/或该方法中设置了支持的界面方向? 实际上问题已经解决了,但是我们必须更改许多代码行,这就是为什么我不能在这里粘贴正确答案..感谢您的支持。简而言之,一些问题与通知有关。在 iOS 7 中,通知的生成发生了一些变化。 @maruti 我正面临着这样的视频问题。请分享您的知识并回答您自己的问题。等待回复。谢谢。 实际上会有很多问题可能导致this.1。 1.将viewcontroller设置为rootyviewcontroller,而不是addsubview。 2.在我们的项目中添加了两个窗口。这导致只旋转一个窗口。由于通知的变化。 3.如果你在你的项目中使用windowlevel属性而不是尝试将其更改为警报级别。 【参考方案1】:

这是我在 xcode 4.6 和 xcode5-DP6 中测试过的代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions


    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
     else 
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
    
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];

    self.window.rootViewController = navigationController;//self.viewController;
    [self.window makeKeyAndVisible];
    return YES;

在 ViewController 中我插入了下面的测试方法

- (NSUInteger)supportedInterfaceOrientations

    return UIInterfaceOrientationMaskAll;

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

    NSLog(@"rotated");

通过使用上面的代码,旋转没有任何问题。它完美地向各个方向旋转。

检查您的定位方法以解决此问题或发布一些代码 sn-p。

注意:我在 Xcode4.6 中创建了示例应用程序。

【讨论】:

Xcode 4.6 不具备为 iOS7 编译的能力,这是 OP 所要求的。你可以在 Xcode5 中再次尝试这个实验并更新。

以上是关于视图控制器在 iOS 7 中不旋转的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objective-C 中不旋转的视图控制器中检测设备的真实方向?

标签在 iOS 6 中显示文本,但在 iOS 7 中不显示

ios 8 的旋转问题,用于添加到 Windows 的视图

在 iOS 7 中触发或延迟自动旋转

旋转iOS后子视图控制器高度为零

在 ios 中,视图控制器中移动子视图以处理旋转的正确位置在哪里?