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

时间:2012-08-09 06:12:34

标签: xcode uitableview ios5

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

- (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是一个全局变量,我想在其中存储所选行的内容。 任何帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

我发现你正在使用故事板。

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

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

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

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

答案 1 :(得分:-1)

 NSString *titleString = [[[NSString alloc] initWithFormat:@"Element number :  %d",indexPath.row] autorelease];

这是用于发送变量的最简单的函数,它无处不在!对于任何失去的人来说,这是最好的功能!!