将状态注入UITabBarController子控制器

c r*_*ald 6 tabs dependency-injection uitabbarcontroller ios

如何将状态注入到显示为UITabBarController的子视图的viewcontroller中?我有两个兄弟选项卡,它们都显示选定日期的信息.可以在TextView选项卡或GraphView选项卡中更改选择的日期,我希望两个选项卡保持同步,这样我就不会混淆用户.

一种相当简单的方法是声明一个全局状态变量来保存currentDate,并让每个tab视图控制器在-viewWillAppear中检查currentDate:.

但是所有的建议都说不要做全局变量(或等价物,比如共享单例或应用程序委托上的属性,等等).相反,您应该进行依赖注入,以便每个控制器获得对共享状态对象的引用.但是你什么时候/怎么做?在用户请求查看它们之前,UITabBarController通常不会加载其选项卡视图.我不认为我想在-application:didFinishLaunchingWithOptions:中预加载所有内容,从而减慢应用程序启动速度.但UITabBarController似乎没有提供任何类型的-tabWillAppear事件来挂钩,所以我似乎坚持将currentDate保持在全局.

我错过了什么吗?谢谢.