我最近更改了一个 Storyboard项目。
在它是 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 传递数据
我现在该怎么做?
我从这里尝试了这段代码,它与我的问题 (http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=2884) 类似,但应用程序在运行时崩溃了。
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 * _strong’”
最佳答案
好的,你的问题是行,因为在索引 0 处没有导航 Controller ,那是你的 StoreViewController 所在的位置:
UINavigationController *navController1 = [tabBarController.viewControllers objectAtIndex:0];
只需将该行更改为:
StoreViewController *scv = [tabBarController.viewControllers objectAtIndex:0];
并删除以 StoreViewController = *svc .... 开头的行。
关于ios - 从 VC 到 TabBar 到 VC (iOS) 的 Segue 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15454119/