无法将UITabBarController类型的值强制转换为FirstViewController(xCode 6.4)

无法将UITabBarController类型的值强制转换为FirstViewController(xCode 6.4),xcode,swift,xcode6,Xcode,Swift,Xcode6,我试图将变量从一个视图控制器传递到另一个视图控制器。首先,有一个连接屏幕。当信息被验证后,我将用户名和其他数据传递给整个程序(有一个选项卡栏控制器) 这是代码。我使用的是Xcode 6.4。在以前的版本中,页面将打开,但变量没有传递。现在它只给了我上面的错误 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if (segue.identifier == "lienConne

我试图将变量从一个视图控制器传递到另一个视图控制器。首先,有一个连接屏幕。当信息被验证后,我将用户名和其他数据传递给整个程序(有一个选项卡栏控制器)

这是代码。我使用的是Xcode 6.4。在以前的版本中,页面将打开,但变量没有传递。现在它只给了我上面的错误

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if (segue.identifier == "lienConnecte") {
            let nav = segue.destinationViewController as! UITabBarController // this line was just an attempt to find a solution
            let vueFil = segue.destinationViewController as! FirstViewController

            vueFil.utilisateur = utilisateur 
        }
    }
当然,我知道在故事板中,segue指向选项卡栏控制器(因为我以后需要它),但我希望将值传递给FirstControllerView

找到了解决方案,对于那些将看到此帖子的人:

let tabBarController = segue.destinationViewController as! UITabBarController
let vueFil = tabBarController.viewControllers![0] as! FirstViewController

你不能像某种魔术师一样,通过说
as
把一件事变成另一件事。你必须得到你要找的东西的参考资料。如果FirstViewController是UITabBarController的子视图控制器之一,则首先获取对UITabBarController的引用(您已经知道如何操作),然后获取其
ViewController
属性-这些是其子视图控制器,您可以从中,通过索引号获取所需的选项卡。选项卡视图控制器是拥有子视图控制器的容器视图控制器。大概,
FirstViewController
就是这些子视图控制器之一。因此,选项卡视图控制器和第一视图控制器是不同的实例。您可以使用
viewControllers
属性访问选项卡栏的子项:

let firstVC = tabVC.viewControllers?.first
// firstVC should be your FirstViewController

它不起作用<代码>让nav=segue.destinationViewController为!UITabBarController允许vueFil:AnyObject?=导航视图控制器?第一个