Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Ios 由于复杂的顺序,在控制器之间传递数据会产生错误_Ios_Objective C_Xcode_Storyboard_Segue - Fatal编程技术网

Ios 由于复杂的顺序,在控制器之间传递数据会产生错误

Ios 由于复杂的顺序,在控制器之间传递数据会产生错误,ios,objective-c,xcode,storyboard,segue,Ios,Objective C,Xcode,Storyboard,Segue,我有一个模态序列,从视图控制器到嵌入在表视图中的选项卡栏控制器,从这个屏幕截图中可以看到: 我想在登录屏幕和表视图之间传递数据。我使用以下代码: -(IBAction)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if([segue.identifier isEqualToString:@"Enter App"]){ //Pass on username so that app can set everyt

我有一个模态序列,从视图控制器到嵌入在表视图中的选项卡栏控制器,从这个屏幕截图中可以看到:

我想在登录屏幕和表视图之间传递数据。我使用以下代码:

-(IBAction)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"Enter App"]){
    //Pass on username so that app can set everything up for that specific user
    GamesListTableViewController *gamesList = (GamesListTableViewController *)segue.destinationViewController;
    if ([segue.destinationViewController isKindOfClass:[GamesListTableViewController class]]) {
        NSLog(@"ENTERING PROPER CLASS");
    }
    else{
        NSLog(@"ENTERING WRONG CLASS");
    }
    gamesList.userID = self.userID;
}
}

由于最后一行代码,我的应用程序崩溃。我检查了原因(正如您在上面的代码中所看到的),原因是segue目标不是GamesListTableViewController,而是我假设的选项卡栏控制器。如何解决此问题?

GamesListTableViewController不是目标视图控制器,选项卡栏控制器是。是的,我明白了,我的问题是如何解决此问题,将数据从视图控制器发送到表视图控制器。那么,这三个控制器之间的关系是什么?查看选项卡栏控制器和导航控制器与其子项相关的属性。你应该能够比你在问题中所表现的更好地尝试。我真的不明白你在说什么。segues功能很好,但我只是认为必须有某种方法在控制器之间传递数据,而不需要为tab view控制器和导航控制器创建自定义的数据。这就是你的建议吗?
UITabbarController *tabController = (UITabbarController*) segue.destinationViewController;
UINavigationController *nav = (UINavigationController*) tabController.viewControllers[0]; // or some other nr
GamesListTableViewController *tvc = nav.topViewController;