如何使用 didSelectRowAtIndexPath 将变量从 uitableview 传递到第二个 tableview?

Posted

技术标签:

【中文标题】如何使用 didSelectRowAtIndexPath 将变量从 uitableview 传递到第二个 tableview?【英文标题】:How to pass variable from uitableview to second tableview using didSelectRowAtIndexPath? 【发布时间】:2012-08-09 06:12:33 【问题描述】:

我想将变量从视图控制器传递到另一个视图控制器,这样当用户在第一个表视图中选择某一行时,应用程序会将他带到另一个视图控制器,其中所选项目的详细信息将出现。 这是我的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 


    NSString *selectedAuthors = [theauthors objectAtIndex:indexPath.row];


    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    Details *dvController = [storyboard instantiateViewControllerWithIdentifier:@"Details"]; //Or whatever identifier you have defined in your storyboard





    dvController.selectedAuthors = selectedAuthors;

    UIAlertView *messageAlert = [[UIAlertView alloc]
                                initWithTitle:@"Row Selected" message:authorNAme delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

   // Display Alert Message
    authorNAme =  [[NSString stringWithFormat:[theauthors objectAtIndex:indexPath.row]] intValue];
 [messageAlert show];

    [self.navigationController pushViewController:dvController animated:YES];

selectedAuthors 是一个字符串 authorName 是一个全局变量,我想在其中存储所选行的内容。 任何帮助将不胜感激。

【问题讨论】:

dv.selectedAuthors = selectedAuthors; 您已经将“数据”传递给第二个视图控制器。您应该在详细信息视图控制器中显示基于 selectedAuthors 的详细信息。 请查看链接,它会告诉你具体问题:***.com/questions/11897149/… 【参考方案1】:

我看到你正在使用故事板。

在这种情况下,要将信息发送到您必须实现的下一个视图控制器

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

每次将要执行 segue 时都会调用此方法。 例如,在 didSelectRowAtIndexPath 中,您可以将行的信息保存在字典中,并在 prepareForSegue 方法中将其传递给下一个视图控制器。

有关详细信息,您可以查看 Apple 的名为 SimpleDrillDown 的示例项目。它做你需要做的同样的事情: http://developer.apple.com/library/ios/#samplecode/SimpleDrillDown/Introduction/Intro.html

【讨论】:

作为 Xcode 的新手,我已经尝试过这个建议,但它没有用..你能给我一个 sn-p plz。非常感谢 请查看此链接:***.com/questions/11897149/… 您是否尝试过我推荐给您的项目?如果你有,但它不起作用,请更新你的问题,以便我能看到问题所在。【参考方案2】:
 NSString *titleString = [[[NSString alloc] initWithFormat:@"Element number :  %d",indexPath.row] autorelease];

这是用于发送变量的最简单的函数,它突然出现了!对于迷路的人来说,这是最好的功能!!

【讨论】:

以上是关于如何使用 didSelectRowAtIndexPath 将变量从 uitableview 传递到第二个 tableview?的主要内容,如果未能解决你的问题,请参考以下文章

具有多个视图控制器的 UITableView

Swift - Alamofire Post,如果为真则更改图像

[精选] Mysql分表与分库如何拆分,如何设计,如何使用

如果加入条件,我该如何解决。如果使用字符串连接,我如何使用

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]