我有一个Tableview显示来自核心数据库的数据。 选择行时,我将信息传递给func prepareForSugue中的视图控制器(vc)。
问题是vc我将此信息传递给Tab Bar控制器的子节点,并通过直接向vc设置segu绕过此Tab Bar控制器,这反过来导致没有标签栏VC。
我的问题是,无论如何都要将数据从tableview传递给标签栏控制器的第一个子节点,并确保标签栏层次结构得到维护?
任何意见都赞赏。
Tableview为segue做准备:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
if(segue.identifier == "ItemDetailsSegue"){
//initilise new vc and cast as history view controller
var viewcontroller = segue.destinationViewController as History;
// pass the caseNumber we got from didselectRow to History property / instance var
println("Passing case Number to Hisory: \(caseNumberToPAsstoHistory)");
viewcontroller.caseNumberSelected = caseNumberToPAsstoHistory;
}
}
答案 0 :(得分:1)
在luk2302建议之后,我从其视图控制器数组中实例化了tabBar控制器第一个子节点并传递了数据:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "ItemDetailsSegue"){
var tabBarCOntroller : UITabBarController = segue.destinationViewController as UITabBarController;
var destinationViewController_History : History = tabBarCOntroller.viewControllers?.first as History;
// Set the case number selected property of History vc
destinationViewController_History.caseNumberSelected = caseNumberToPAsstoHistory;
println("Passing case Number to Hisory: \(caseNumberToPAsstoHistory)");
}
}
感谢您的建议:)