0

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

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

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 将在导航控制器内显示选项卡控制器。

4

1 回答 1

0

UIStoryBoardSegue 有一个 destinationViewController 属性,它将为您提供目标视图控制器 - 在您的情况下为 UITabBarController (如果我正确阅读了您的问题)。您必须将其转换为 UITabBarController,然后您可以从那里访问它的子视图。(目标 c 中的代码,但应该很容易转换,我只是从未使用过 swift)

UITabBarController *tabControl = (UITabBarController *)segue.destinationViewController;
MyViewController *mv = (MyViewController *)tabControl.viewControllers[0];// whatever index you want
于 2015-01-20T06:03:23.607 回答