我需要更新 View Controller 中的变量,并且我需要从标签栏 Controller 中执行此操作。
见下图:
我尝试了很多不同的代码,但是,由于我在两者之间实现了一个导航 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"
代码3
let myInstance:MyViewController = MyViewController()
myInstance.x = "marco"
但是它们都不起作用。 请帮忙
非常感谢
最佳答案
您需要按照从选项卡栏 Controller 到自定义 View Controller 的 View Controller 层次结构,如下所示:
Tab bar controller (self) -> navigation controller -> custom view controller
我们想要获取标签栏 Controller 的第一个 View Controller (导航 Controller ),然后获取该导航 Controller 的第一个 View Controller 。在代码中,您可以这样做:
let myVC = (self.viewControllers?[0] as UINavigationController).viewControllers[0] as MyViewController
myVC.x = "marco"
请注意,这是脆弱的,如果您完全更改层次结构,将会失败。
关于ios - Swift - 从选项卡栏 Controller 更新 View Controller 内的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26530588/