将数据从VC传递到TabBar到VC(iOS)

时间:2013-03-16 20:05:51

标签: ios uistoryboardsegue

我有一个故事板项目,我最近改变了。

之前是VC - > VC1 - > VC2并使用此代码在ViewControllers

之间隔离数据
if([segue.identified isEqualToString:@"SegueData"]){
   StoreViewController *svc = [segue destinationViewController];
   NSIndexPath *path = [allStoresTable indexPathForSelectedRow];
   Stores *s = [stores objectAtIndex:path.row];
   [svc setCurrentStores:s];
}

现在我需要从VC传递数据 - > TabBar - > VC1,VC2

我现在该怎么办?

我从这里尝试过这个与我的问题类似的代码(http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=2884)但是app在运行时崩溃了。

UITabBarController *tabBarController = segue.destinationController;

UINavigationController *navController1 = [tabBarController.viewControllers objectAtIndex:0];
StoreViewController *svc= navController1.topViewController;
NSIndexPath *path = [allStoresTable indexPathForSelectedRow];
Stores *s = [stores objectAtIndex:path.row];
[svc setCurrentStores:s];

此行也导致崩溃

StoreViewController *svc= navController1.topViewController;

给我警告“不兼容的指针类型初始化'StoreViewController * _strong',表达式为'UIViewController *'

1 个答案:

答案 0 :(得分:2)

好的,你的问题就是这一行,因为索引0没有导航控制器,那就是你的StoreViewController:

UINavigationController *navController1 = [tabBarController.viewControllers objectAtIndex:0];

只需将该行更改为:

StoreViewController *scv = [tabBarController.viewControllers objectAtIndex:0];

并删除启动StoreViewController = * svc ....

的行