Swift 在 Nav 和 Tab Controller 之间传递数据
Swift passing data between Nav and Tab Controller
viewcontrollerB 是导航控制器的根视图,同时也是选项卡视图控制器的第一个视图。如何通过导航和选项卡控制器将数据从初始 viewA 传递到 ViewB ?谢谢
为您的标签栏控制器提供自定义 class,例如 MyTabBarController,并在那里声明一个变量,该变量将在登录视图控制器中接收来自文本字段的文本(通过 prepareForSegue)。然后您将能够从您的主视图控制器访问该变量。
在您的登录视图控制器中:
@IBAction func ButtonPressed(sender: AnyObject) {
performSegueWithIdentifier("toTabBarController", sender: nil)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let tabBarController = segue.destinationViewController as? MyTabBarController{
tabBarController.someVariable = someTextField.text!
}
}
在您的标签栏控制器中:
var someVariable = String()
在您的主表视图控制器中:
override func viewWillAppear(animated: Bool) {
let tabBarController = self.tabBarController as! MyTabBarController
someVariable = tabBarController.someVariable
print("the text is",someVariable)
}
viewcontrollerB 是导航控制器的根视图,同时也是选项卡视图控制器的第一个视图。如何通过导航和选项卡控制器将数据从初始 viewA 传递到 ViewB ?谢谢
为您的标签栏控制器提供自定义 class,例如 MyTabBarController,并在那里声明一个变量,该变量将在登录视图控制器中接收来自文本字段的文本(通过 prepareForSegue)。然后您将能够从您的主视图控制器访问该变量。
在您的登录视图控制器中:
@IBAction func ButtonPressed(sender: AnyObject) {
performSegueWithIdentifier("toTabBarController", sender: nil)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let tabBarController = segue.destinationViewController as? MyTabBarController{
tabBarController.someVariable = someTextField.text!
}
}
在您的标签栏控制器中:
var someVariable = String()
在您的主表视图控制器中:
override func viewWillAppear(animated: Bool) {
let tabBarController = self.tabBarController as! MyTabBarController
someVariable = tabBarController.someVariable
print("the text is",someVariable)
}