视图控制器在 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 中不旋转的主要内容,如果未能解决你的问题,请参考以下文章