【问题标题】:What's causing the massive changes in autorotation in 8.1 compared to 8.0.2?与 8.0.2 相比,是什么导致了 8.1 中自转的巨大变化?
【发布时间】:2014-10-24 14:57:13
【问题描述】:

我正在编写一个视频处理应用程序,并在 ios 8.1 发布时将其提交到应用程序商店。我更新了我的 iPhone 和 XCode,一切都乱了套。在我简单的单视图控制器界面中,除了状态栏外,没有任何东西在旋转,在横向模式下也不会再自动隐藏...

我认为这是因为我使用了已弃用的 willAnimateRotationToInterfaceOrientation: 来实现我所拥有的一些自定义旋转操作,因此我实施了 traitCollectionDidChange: 和 viewWillTransitionToSize: 来代替规范。但是 viewWillTransitionToSize 永远不会在我的应用程序中被调用,并且 traitCollectionDidChange: 在启动时只被调用一次。设备根本不会告诉应用设备已旋转。

谷歌搜索后,我还尝试使用名称:UIDeviceOrientationDidChangeNotification。至少我的选择器确实被调用了,但我不知道如何手动处理 all 旋转。

我的 didFinishLaunching... 和 viewDidLoad 非常简单。分配 UIWindow,情节提要,从那里设置我的视图控制器,使其成为 rootviewcontroller,makekeyandvisible。全部基于 Apple 的 AVFoundation 演示应用程序之一。 然后在 didload 中,我添加了一些子视图和工具栏等,没有什么不寻常的,显然它确实适用于各种设备的 8.0 和 8.0.2 以及 7.1 模拟器等。仍然可以在我的 8.0 的 iPad 上完美运行。 2... 我没有发布任何代码的原因是我 100% 确定一切都是正确的。

主要的奇怪之处是我似乎找不到有这个问题的人。 控制台或其他地方也没有错误。

有没有人知道可能是什么原因造成的?我不认为一个点发布会产生如此巨大的差异,而且,似乎没有其他人有这个。这可能是实际故事板文件中的问题/错误吗?

而且,主要是因为我可以通过 UIDeviceOrientationDidChangeNotification 获得旋转通知,我如何手动处理所有旋转/调整大小的东西?我一直在寻找答案,但无济于事,目前没有时间花在这个项目上:(

干杯!

【问题讨论】:

    标签: ios objective-c xcode autorotate ios8.1


    【解决方案1】:

    分配 UIWindow 将是问题。

    首先,确保您的导航控制器(或您正在使用的任何控制器)在情节提要中设置为“初始视图控制器”。

    其次,在您的 AppDelegate.m 文件中,删除应用程序 didFinishLaunchingWithOptions 中出现的对 UIWindow 和 rootViewController 的所有引用。就我而言,删除以下两行解决了我的问题。

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self.window makeKeyAndVisible];
    

    如果使用故事板,您也不需要设置窗口的rootViewController

    在使用情节提要时根本不需要它们,但在 8.1 之前使用它们从来没有任何危害。我花了 2 天时间才弄清楚这一点,因此希望它对您和其他人也有帮助。

    【讨论】:

    • 出色的伴侣!所以基本上这是一个故事板被自动初始化的问题,然后我们手动重做 - 像 xib 一样对待故事板,然后新窗口不知何故没有收到它
    • 是的,引用Apple支持人员的话:“系统创建的窗口,作为第一个窗口,首先收到方向更改通知。由于iOS 8.1的更改,第一个窗口最终被阻塞第二个窗口(您创建的那个,关键窗口)响应方向变化。”如果它解决了您的问题,请务必接受它作为答案;)
    • 谢谢,这对我有用。你为我节省了无数时间。在我的情况下,我需要保留对 rootViewController 的引用,因为我在 CocoaPod 中使用初始视图控制器,但删除对 UIWindow 的引用修复了它!
    猜你喜欢
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 2015-04-13
    • 2014-04-26
    • 1970-01-01
    相关资源
    最近更新 更多