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;