Ios 在导航控制器和选项卡控制器之间传递数据

Ios 在导航控制器和选项卡控制器之间传递数据,ios,xcode,swift,uinavigationcontroller,uitabview,Ios,Xcode,Swift,Uinavigationcontroller,Uitabview,如果序列图像板在导航控制器中包含一个视图,该视图与已嵌入选项卡控制器中的另一个视图控制器相连,那么如何将变量从初始视图传递到选项卡控制器中的第一个视图 具体来说,我希望使用基本的performsguewithidentifier方法传递变量。通过将第一个视图控制器(嵌入导航控制器)连接到选项卡控制器,我无法传递数据。但是,如果直接在第一个视图控制器和目标视图控制器之间建立连接,则目标不再嵌入选项卡中 override func prepareForSegue(segue: UIStoryboar

如果序列图像板在导航控制器中包含一个视图,该视图与已嵌入选项卡控制器中的另一个视图控制器相连,那么如何将变量从初始视图传递到选项卡控制器中的第一个视图

具体来说,我希望使用基本的
performsguewithidentifier
方法传递变量。通过将第一个视图控制器(嵌入导航控制器)连接到选项卡控制器,我无法传递数据。但是,如果直接在第一个视图控制器和目标视图控制器之间建立连接,则目标不再嵌入选项卡中

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "internalItemDetail" {
        let destination = segue.destinationViewController as InternalInventoryDetail
        let index = itemTable.indexPathForSelectedRow()!
        destination.fmRecordId = sectionedItemArray[index.section][index.row]["fmRecordId"] as String!
    }
}

说清楚了,,目标是将变量从导航控制器传递到另一个视图中,该视图嵌入在选项卡控制器中,而UI将在导航控制器中显示选项卡控制器。

UIStoryBoardSegue有一个destinationViewController属性,该属性将为您提供目标视图控制器(在您的示例中是UIAbbarController)(如果我没有看错你的问题的话)。你必须将它转换到UITabBarController,然后从那里你可以访问它的子视图。(目标c中的代码,但应该很容易转换,我只是从来没有使用过swift)

UITabBarController *tabControl = (UITabBarController *)segue.destinationViewController;
MyViewController *mv = (MyViewController *)tabControl.viewControllers[0];// whatever index you want