繁体   English   中英

不确定如何在使用故事板时正确地子类化UIApplication

[英]Not sure how to properly subclass UIApplication while using storyboards

我希望在用户不活动的X时间之后返回我的storyboard的初始viewcontroller(没有触发事件触发)。 经过一些研究后,我发现检测不活动的最常见方法是触发NSTimer并在事件触发时重置间隔。 为了检测已触发的事件,我们在UIApplication的子类中覆盖[UIApplication sentEvent:]。 这是我陷入困境的部分。

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

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

https://github.com/elc/ELCUIApplication

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

如果想要使用主故事板文件,则app委托必须实现window属性。

github中的appDelegate是NSObject的子类,并根据我的理解手动加载其窗口属性中的初始视图,而我的appDelegate是UIResponder的子类,UIR应答器本身是UIApplication的超类。 我不知道如何继续,我已经在我的AppDelegate中有窗口属性并合成,但我不知道该怎么做。

任何帮助将不胜感激!

听起来你改变了UIApplicationMain的错误参数。

UIApplicationMain的默认调用如下所示:

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM