ios - 从 VC 到 TabBar 到 VC (iOS) 的 Segue 数据

标签 ios uistoryboardsegue

我最近更改了一个 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/

相关文章:

ios - 蓝牙信标启动应用程序或生成推送通知

ios - __IPHONE_OS_VERSION_MAX_ALLOWED 的常见用例是什么?

html - SWIFT 3 - 从从 JSON 网址获取的字符串中取出 html 标签

ios - 添加照片,并重新加载嵌入式照片容器 View Controller

ios - 以编程方式获取 segue(和目标 View Controller )的任何方法?

ios - AVPlayer HLS 直播流 IOS

ios - NSURLSession 失效并取消 : Bad Access

ios - 为什么我不能在我的prepareForSegue方法中快速转换发送者?

xcode - Swift - 我如何从 ViewController 转到 TabBarController

ios - 是否可以将 2 个 segues 附加到指向两个不同 UIViewController 的 UITableViewCell?