将数据从tableview传递到Swift中的标签栏视图控制器。

在我的故事板,我有一个视图控制器与表视图放置在标签栏控制器之前的一部分。 这个标签栏有两个视图控制器。 早些时候,我已经使用表视图,当我点击一个单元格时,我传递给另一个ViewController加载另一个视图控制器与表和单元格从第一个表中推入单元格的ID。 喜欢这个:

桌面控制器,准备继续:

if segue.identifier == "overviewSegue" { var caseViewController: CaseViewController = segue.destinationViewController as CaseViewController var caseIndex = overviewTableView!.indexPathForSelectedRow()!.row var selectedCase = self.cases[caseIndex] caseViewController.caseitem = selectedCase } 

这很好。 现在我想要做同样的事情,但唯一的区别是最后一个视图控制器是一个TabBar控制器的一部分。 问题是我不能让它工作传递数据到这个最后的表视图控制器。

我尝试了几件事情,但是我不能将数据指向tabbar表格视图。 Segue的不是平易近人的,目标不是表视图控制器,而是tabbar控制器等。问题是如何通过tabbar控制器将数据从tableview传递到另一个视图控制器。

我find了一个解决scheme:

  override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "toTabController" { var tabBarC : UITabBarController = segue.destinationViewController as UITabBarController var desView: CaseViewController = tabBarC.viewControllers?.first as CaseViewController var caseIndex = overviewTableView!.indexPathForSelectedRow()!.row var selectedCase = self.cases[caseIndex] desView.caseitem = selectedCase } } 

简单的解释:你需要到你的标签栏控制器,并select他的视图控制器。 它通常有两个,所以你可以select第一个。 之后,定义它属于哪个类,并且可以像以前那样传递数据。