将数据从Tabbar控制器传递到Swift和XCode中的视图控制器

时间:2018-08-26 19:04:37

标签: ios swift xcode uiviewcontroller uitabbarcontroller

我想使用其类将数据从视图控制器传递到选项卡控制器,然后从该选项卡控制器传递到其视图控制器。我成功地使用segue从视图控制器转移到了标签栏控制器。但是,我无法将数据从标签栏控制器传输到其视图控制器之一。

任何想法/文档将不胜感激。这是我要从xcode进行操作的屏幕截图 screenshot-xcode

2 个答案:

答案 0 :(得分:1)

看看标签栏控制器的documentation,尤其是viewControllers属性。

该属性是一组UIViewController,按照它们在标签栏中显示的顺序,因此您可以选择所需的属性(屏幕截图中的viewControllers[0]),并将其投射到您的特定的视图控制器子类,然后将其传递给您的数据。

答案 1 :(得分:0)

最后,非常感谢answer,我能够解决此问题。这是针对像我这样的初学者的详细说明:

这是源控制器类,它是一个标签栏控制器,它传输数据:

class SourceTC: UITabBarController {

    var dataTransferFrom = "transfer this string"

    override func viewDidLoad() {
        super.viewDidLoad()

        let finalVC = self.viewControllers![0] as! DestinationVC //first view controller in the tabbar
        finalVC.dataTransferTo = dataTransferFrom

    }

}

这是目标控制器类,它是选项卡控制器下的视图控制器,它获取传输的数据:

class DestinationVC: UIViewController {

    var dataTransferTo = ""

    override func viewDidLoad() {
        super.viewDidLoad()

        print(dataTransferTo)

    }
}