3

我想在 X 次用户不活动(没有触发触摸事件)之后返回我的故事板的初始视图控制器。经过一些研究,我发现检测不活动的最常见方法是触发 NSTimer 并在触发事件时重置间隔。为了检测触发的事件,我们在 UIApplication 的子类中重写 [UIApplication sentEvent:]。这是我有点卡住的部分。

我正在看这个项目作为参考

http://www.icodeblog.com/2011/09/19/timing-out-an-application-due-to-inactivity/

https://github.com/elc/ELCUIApplication

我不确定在使用情节提要时如何实现类似的功能。我尝试了类似于那个 github 项目的东西;我创建了一个新类,它是 UIApplication 的子类,覆盖了所需的方法,最后更改了主函数中的目标类(从我的 appdelegate 到子类化 UIApplication 的新类)。通过这样做,我得到了以下错误

如果要使用主故事板文件,应用程序委托必须实现 window 属性。

github中的appDelegate是NSObject的子类,根据我的理解手动加载了他的window属性中的初始视图,而我的appDelegate是UIResponder的子类,它本身就是UIApplication的超类。我不知道如何继续,我的 AppDelegate 中已经有了 window 属性并已合成,但我不确定如何处理它。

任何帮助将不胜感激!

4

1 回答 1

12

听起来您将错误的参数更改为UIApplicationMain.

默认调用UIApplicationMain如下所示:

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

第三个参数(nil默认)是UIApplication要使用的类的名称。如果为 nil,则应用程序仅使用UIApplication.

第四个参数是UIApplicationDelegate要使用的类的名称。

听起来您更改了第四个参数,但您应该更改了第三个参数:

return UIApplicationMain(argc, argv,
    NSStringFromClass([MyApplication class]),
    NSStringFromClass([AppDelegate class]));
于 2012-11-02T19:09:36.593 回答