【问题标题】:Stop Device orientation停止设备方向
【发布时间】:2016-01-31 04:00:14
【问题描述】:

在运行我的应用程序时,我收到错误消息,表明正在发送轮换通知并导致应用程序崩溃。有没有办法可以阻止发送所有旋转事件以查看是否可以阻止崩溃。还有一个很好的概述应该如何处理这些事件。我是否必须在控制器或所有视图中单独处理它们。目前我很乐意锁定纵向。

我尝试调用 [[UIDevice currentDevice] endGenerating Device OrientationNotifications]; 但我仍然将设备方向 DidChange 事件无法识别的选择器发送到实例

【问题讨论】:

    标签: uideviceorientation


    【解决方案1】:

    您无法停止轮换通知,也不应尝试这样做。

    通知不会导致您的崩溃,您肯定有一些错误的代码。

    从控制台粘贴您的确切错误以及发生错误的视图控制器的代码。我的猜测是您编写了一个不起作用的旋转处理程序方法,可能没有意识到。

    您可以通过创建具有此方法的视图控制器基类来锁定纵向,然后将其用作所有其他视图控制器的超类:

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
    {
        return toInterfaceOrientation == UIInterfaceOrientationPortrait;
    }
    

    【讨论】:

    • 谢谢尼克,我一直在回顾我最近所做的更改,我添加了一个临时 uiview 来尝试让 MBProgressHUD 工作,我在使用后删除了这个视图,但它似乎仍在发送了一个通知(我找到了代码,没有崩溃。我应该删除这个视图的通知吗?
    • 如果你不使用它们,你需要摆脱任何与轮换相关的 NSNotification 处理程序。
    • 评论了 HUB 并评论了所有“方向”回调,但我仍然遇到崩溃。我假设这是我在实现 HUD 时所做的事情。谢谢。
    • 您收到的日志消息是什么 - 导致崩溃的选择器是什么?
    • 0 libobjc.A.dylib 0x31eb0fbc objc_msgSend + 16 1 Foundation 0x32e26508 __57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_0 + 12 2 CoreFoundation 0x33e60570 ___CFXNotificationPost_block_invoke_0 + 64 3 CoreFoundation 0x33dec0c8 _CFXNotificationPost + 1400 4基础 0x32d9a3f4 -[NSNotificationCenter postNotificationName:object:userInfo:] + 60 5 UIKit 0x37017c08 -[UIDevice setOrientation:animated:] + 208
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多