7

如何将状态注入显示为 UITabBarController 子级的视图控制器?我有两个同级选项卡,它们都显示选定日期的信息。可以更改在 TextView 选项卡或 GraphView 选项卡中选择的日期,并且我希望两个选项卡保持同步,以免混淆用户。

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

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

我错过了什么吗?谢谢。

4

0 回答 0