我在应用程序中有一个主TabBarVC,它包含2个标签(2个VC)。
其中一个标签是Map VC(显示谷歌地图)。 它应该如何与VC相互联系。
碰巧,我需要将显示的坐标从First Tab发送到Second(map vc)。
我的第一个想法是创建MapVC类的变量并只呈现它。 但我有TabBarVC,我必须改变selectionIndex:
self.tabBarController?.selectedIndex = 2
是不是?)
它工作正常,我在MapVC类中创建了静态var(lat,lon),在更改selectedIndex之前设置了这个静态变量。更改选项卡后,调用mapVC的viewDidLoad func,我可以在地图上显示位置。好。
问题:如果我将标签更改为第一个并按下按钮(在第二个标签上显示位置),MapVC的viewDidLoad将无法运行,因为已经创建了。我无法调用MapVC的任何函数(第二个标签),因为我没有创建它,它只是一个创建自己的标签..
代表,协议......有什么可以帮到我?
谢谢!
答案 0 :(得分:1)
在FirstVC的show动作中,获取MapVC:
if let mapVC = self.tabBarController.viewControllers[1] as? YourViewController {
// you can use public properties of MapVC here
}