Swift - 从标签栏控制器更新视图控制器内的变量

时间:2014-10-23 14:35:22

标签: ios swift uiviewcontroller parameter-passing

我需要更新View Controller中的变量,我需要从Tab Bar Controller执行此操作。

见下图: enter image description here

我尝试了很多不同的代码但是,因为我在其间实现了一个导航控制器,所以没有一个能够工作。

代码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"

但他们都没有工作。 请帮忙

非常感谢

1 个答案:

答案 0 :(得分:2)

您需要按照标签栏控制器中的视图控制器层次结构一直到自定义视图控制器,如下所示:

  

标签栏控制器(自我) - >导航控制器 - >自定义视图控制器

我们希望获得标签栏控制器的第一个视图控制器(导航控制器),然后获取该导航控制器的第一个视图控制器。在代码中,您可以这样做:

let myVC = (self.viewControllers?[0] as UINavigationController).viewControllers[0] as MyViewController
myVC.x = "marco"

请注意,这很脆弱,如果更改层次结构,则会失败。