Ios 在Swift中将数据从tableview传递到选项卡栏视图控制器。
在我的故事板中,我有一个部分,其中带有表视图的视图控制器放置在选项卡栏控制器之前。此选项卡栏有两个视图控制器。早些时候,我已经使用了表视图,当我单击一个单元格时,我将其传递给另一个Viewcontroller,后者使用表和单元格加载另一个视图控制器,单元格的id来自第一个表中的推式单元格。像这样: tableview控制器,准备开始:Ios 在Swift中将数据从tableview传递到选项卡栏视图控制器。,ios,uitableview,swift,uitabbarcontroller,Ios,Uitableview,Swift,Uitabbarcontroller,在我的故事板中,我有一个部分,其中带有表视图的视图控制器放置在选项卡栏控制器之前。此选项卡栏有两个视图控制器。早些时候,我已经使用了表视图,当我单击一个单元格时,我将其传递给另一个Viewcontroller,后者使用表和单元格加载另一个视图控制器,单元格的id来自第一个表中的推式单元格。像这样: tableview控制器,准备开始: if segue.identifier == "overviewSegue" { var caseViewController
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控制器将数据从一个表视图传递到另一个视图控制器 我找到了一个解决方案:
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
}
}
简单解释:您需要进入选项卡栏控制器并选择他的视图控制器。它通常有两个,因此您可以选择第一个。之后,定义它所属的类,您就可以像以前一样传递数据了 对于尝试使用此建议的人员,将数据传输到第一个选项卡是可行的,但您需要一个模型来将数据传输到第二个选项卡。