Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从VC切换到TabBar再切换到VC(iOS)_Ios_Uistoryboardsegue - Fatal编程技术网

将数据从VC切换到TabBar再切换到VC(iOS)

将数据从VC切换到TabBar再切换到VC(iOS),ios,uistoryboardsegue,Ios,Uistoryboardsegue,我有一个故事板的项目,最近我改变了 之前它是VC->VC1->VC2,并使用此代码在ViewController之间分隔数据 if([segue.identified isEqualToString:@"SegueData"]){ StoreViewController *svc = [segue destinationViewController]; NSIndexPath *path = [allStoresTable indexPathForSelectedRow]; S

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

之前它是VC->VC1->VC2,并使用此代码在ViewController之间分隔数据

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传递数据

我现在怎么做

我在这里尝试了类似于我的问题()的代码,但应用程序在运行时崩溃

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;

向我发出警告“不兼容的指针类型正在使用类型为“UIViewController*”的表达式初始化“StoreViewController*\u strong”

好的,您的问题是行,因为索引0处没有导航控制器,这就是您的StoreViewController所在的位置:

UINavigationController *navController1 = [tabBarController.viewControllers objectAtIndex:0];
只需将该行更改为:

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

并删除启动StoreViewController=*svc….的行

使用UITabBarController的viewControllers属性如何?它包含选项卡栏控制器的所有子视图控制器。我不明白这是什么意思。viewControllers属性允许您访问选项卡栏中的每个VC。您可以这样做:self.tabBarController.viewControllers[X]访问任何其他VC并在它们之间交换数据。这将有助于在选项卡栏中的每个VC之间传递数据,对吗?但我想做的是,我有一个单独的VC,它有数据,然后将数据传递给TabBar控制器。如果IB中的所有设置都正确,这应该是有效的。您在从VC到TabBar之间做什么样的转换?您应该记录navController1和svc,以确保两者都不为零。该警告不应导致崩溃--您可以通过将navController1.topViewController强制转换为StoreViewController使其静音。您收到崩溃消息了吗?您太棒了。现在工作得很好。非常感谢:)