iphone - 不确定如何在使用 Storyboard时正确地子类化 UIApplication

标签 iphone objective-c ios xcode ipad

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

我正在看这个项目作为引用

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

https://github.com/elc/ELCUIApplication

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

如果应用委托(delegate)想要使用主 Storyboard文件,它必须实现窗口属性。

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

如有任何帮助,我们将不胜感激!

最佳答案

听起来您将错误的参数更改为 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]));

关于iphone - 不确定如何在使用 Storyboard时正确地子类化 UIApplication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13201240/

相关文章:

ios - 测试模拟关闭网络 iPad 测试仪 iOS

iphone - 代码签名时下拉不显示在 Xcode 4 中

ios - 用于了解 Xcode 4.3.2 中是否启用 ARC 的宏

iphone - 如何设置 iPod 音量而不影响其他音量?

ios - 动态映射

ios - 如何在不更改 iPhone 上的语言首选项的情况下使用 Xcode 以另一种语言测试我的 iOS 应用程序?

ios - 运行Xcode程序时出错

iPhone 应用程序 : In App Purchase

iphone - 显示按日期对核心数据进行排序

objective-c - 未安装 FinderSync 附件