【问题标题】:applicationDidBecomeActive doesn't appear to work on device - only in simulatorapplicationDidBecomeActive 似乎不适用于设备 - 仅在模拟器中
【发布时间】:2011-08-05 20:05:25
【问题描述】:

这是我的应用委托中applicationDidBecomeActive 的主体

if (myViewController != nil) {
    [myViewController myMethod];
}

在模拟器中似乎可以触发,但在设备上却不行。有什么线索吗?

编辑/更新:我已经尝试将代码移动到 applicationWillEnterForeground,但无论是在哪里,我都将代码放在模拟器和设备上运行时使用开发配置文件运行良好。当我为我的部署配置文件构建并在设备上将其作为临时构建运行时,它就会崩溃。

【问题讨论】:

  • 设备是什么?较旧的 iPhone(例如 iPhone 3G)和 iPod Touch 的行为不同。
  • 可以在 myViewController 初始化之前调用 applicationDidBeconeActive 吗?
  • @onnoweb - 好电话 - 它似乎在我的第一代 iPad 上工作正常,但在我的 iPod touch(运行 iOS 4.3.2)上(不知道它有多旧,但它有视网膜和相机)是它不起作用的地方。嗯...如果这是原因,有人知道解决方案吗?
  • @Autopulated - 视图控制器在切换到不同的应用程序之前已初始化并可见,所以是的,它肯定存在。当我切换回来并且应用程序重新进入我想要触发事件的前台时

标签: iphone ios device


【解决方案1】:

您可能需要考虑为名为 UIApplicationWillEmterForeground 的 NSNotification 注册您的视图控制器并以这种方式处理它,而不是依赖于 cenfrwlized 应用程序委托。这将使事情更容易管理。

【讨论】:

  • 我试过了,但没有帮助。它在模拟器中工作的事实告诉我我将代码放在正确的方法中 - 我只是想知道为什么它不能在设备上工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-01
  • 2011-03-08
  • 2015-02-13
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多