tol*_*ven 4 xcode objective-c ios auto-rotation ios8.1
我正在编写一个视频处理应用程序,当ios 8.1问世时,它正准备将它提交到应用程序商店.我更新了我的iPhone以及XCode,所有地狱都崩溃了.在我简单的单一视图控制器界面中,除了状态栏之外,没有任何东西可以旋转,状态栏也不会在横向模式下自动隐藏...
我认为这是因为我使用了已弃用的willAnimateRotationToInterfaceOrientation:对于我所拥有的少量自定义旋转操作,所以我实现了traitCollectionDidChange:和viewWillTransitionToSize:来改变规格.但是,在我的应用程序中永远不会调用viewWillTransitionToSize,并且traitCollectionDidChange:在启动时仅调用一次.设备根本没有告诉应用程序设备已旋转.
谷歌搜索后,我也尝试使用名称:UIDeviceOrientationDidChangeNotification.至少我的选择器会被调用,但我不知道如何手动处理所有旋转.
我的didFinishLaunching ...和viewDidLoad非常简单.分配UIWindow,storyboard,从那里设置我的viewcontroller,使它成为rootviewcontroller,makekeyandvisible.全部基于Apple的AVFoundation演示应用程序之一.然后在didload中我添加了一些子视图和一个工具栏等,没有什么不同寻常的,显然它在各种设备以及7.1模拟器等上都可以在8.0和8.0.2上运行.仍然在我的iPad上运行完美无缺8.0. 2 ...原因我没有发布任何代码是我100%确定一切都是正确的.
主要奇怪的是我似乎找不到任何有这个问题的人.控制台或其他地方也没有错误.
有没有人知道可能导致这种情况的原因?我不认为一个点发布会产生如此巨大的差异,而且没有其他人似乎有这个.它可能是实际故事板文件中的问题/错误吗?
而且,主要是因为我可以通过UIDeviceOrientationDidChangeNotification获取旋转通知,如何手动处理所有旋转/调整大小的内容?我一直在寻找答案,但没有用,我没有时间花在这个项目上:(
干杯!
分配UIWindow将是问题所在.
首先,确保您的故事板中的导航控制器(或您正在使用的任何内容)设置为"初始视图控制器".
其次,在AppDelegate.m文件中,删除对应用程序didFinishLaunchingWithOptions中出现的UIWindow和rootViewController的任何引用.在我的情况下,删除以下两行修复了我的问题.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)
rootViewController如果使用故事板,您也不需要设置窗口.
使用故事板时根本不需要它们,但在8.1之前,使用它们从未造成任何伤害.花了我2天的时间才弄明白这一点,所以希望它能帮助你和其他人.
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |