我需要更新View Controller中的变量,我需要从Tab Bar Controller执行此操作。
见下图:
我尝试了很多不同的代码但是,因为我在其间实现了一个导航控制器,所以没有一个能够工作。
代码1
let myVC:MyViewController = self.viewControllers?[0] as MyViewController
myVC.x = "marco"
代码2
var storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var myVC:MyViewController = storyboard.instantiateViewControllerWithIdentifier("view2") as MyViewController
myVC.x = "marco"
CODE3
let myInstance:MyViewController = MyViewController()
myInstance.x = "marco"
但他们都没有工作。 请帮忙
非常感谢
答案 0 :(得分:2)
您需要按照标签栏控制器中的视图控制器层次结构一直到自定义视图控制器,如下所示:
标签栏控制器(自我) - >导航控制器 - >自定义视图控制器
我们希望获得标签栏控制器的第一个视图控制器(导航控制器),然后获取该导航控制器的第一个视图控制器。在代码中,您可以这样做:
let myVC = (self.viewControllers?[0] as UINavigationController).viewControllers[0] as MyViewController
myVC.x = "marco"
请注意,这很脆弱,如果更改层次结构,则会失败。