在UITabBarController视图之间传递数据[英] Pass data between UITabBarController views

本文是小编为大家收集整理的关于在UITabBarController视图之间传递数据的处理方法,想解了在UITabBarController视图之间传递数据的问题怎么解决?在UITabBarController视图之间传递数据问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我已经搜索了一整天来寻找一个简单的例子,但还没有找到.我正在开发一个应用程序,我想在初始加载时进行 API 调用并填充一些可在任何选项卡视图中访问的变量.

示例:我想进行一次 API 调用来获取我的数据,其中包括与警报选项卡的警报相关的数据.我想在初始加载时使用此数据来更新"警报"选项卡徽章.但是,我还想在用户转到该选项卡后在警报页面上使用该信息,而无需再次进行 API 调用以再次获取相同的信息.

我已经阅读了大量不符合我要求的解释,所以我正在寻找一个很好的例子来帮助我.

推荐答案

使用 UITabBarViewController 的 viewControllers 属性访问标签栏控制器中的视图控制器数组.根据您的标签栏控制器架构对它们进行类型转换.然后使用该数组获取指向任何视图控制器的指针.

例如,假设您的标签栏控制器有 5 个标签,每个标签都有一个 UINavigationController,其中有特定的 UIViewController 作为根视图控制器.假设您要将第三个选项卡的徽章值设置为您的网络响应数组计数.你可以这样做

[[[self.tabviewController viewControllers] objectAtIndex:2] 
        setBadgeValue:[NSString stringWithFormat:@"%d",[myArray count]];

您还可以通过对视图控制器进行类型转换来获取特定视图控制器的属性.例如

MyViewController *myVc = (MyViewController*) [[(UINavigationController*)[[self.tabviewController viewControllers] objectAtIndex:2] viewControllers] objectAtIndex:0];
[myVc setPropertyName:propertyValue];

本文地址:https://www.itbaoku.cn/post/924340.html