如何在由UITabBarController分隔的两个视图控制器之间传递数据?

时间:2018-12-26 07:13:14

标签: ios swift uinavigationcontroller uitabbarcontroller

我想将User的数据(对象)从LoginVC传递到HomeVC,但是在这两个视图控制器之间,它们由UITabBarController和{{1}隔开},如下图所示:

我想传递来自此loginVC的NavigationController数据。通过该loginVC,它将segue推送到User,如下图所示

enter image description here

这是包含标签栏控制器的main.storyboard,在第一个标签栏(索引= 0)是HomeVC所在的位置,我将homeVC放在了main.storyboardenter image description here

这里是Home.storyboard,在我最终到达HomeVC之前,有一个Navigation控制器。 enter image description here

那么如何将数据从LoginVC传递到HomeVC?看来我必须从以下位置传递数据:LoginVC-> TabBarController-> NavigationController-> HomeVC

我该怎么办?

用户数据类似于以下代码:

Home.storyboard

3 个答案:

答案 0 :(得分:0)

UITabBarController按选项卡索引的顺序维护视图控制器的数组。

https://developer.apple.com/documentation/uikit/uitabbarcontroller/1621185-viewcontrollers

同样,UINavigationController也可以维护控制器堆栈。

因此,您只需要从数组中获取视图控制器的对象(通过强制类型转换)并传递数据即可。

答案 1 :(得分:0)

用户数据是导入的,应考虑将用户数据保存在本地文件中,然后可以在任何地方获取用户数据。

答案 2 :(得分:0)

UITabBarController类包含一个ViewControllers数组。

您可以使用UITabBarController内任何视图控制器内的常规索引来访问第一个ViewContoller:

self.tabBarController?.viewControllers[0]