1

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

- (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 是一个全局变量,我想在其中存储所选行的内容。任何帮助将不胜感激。

4

2 回答 2

1

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

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

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

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

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

于 2012-08-09T11:29:27.687 回答
-1
 NSString *titleString = [[[NSString alloc] initWithFormat:@"Element number :  %d",indexPath.row] autorelease];

This is the simplest function used to send variables and it just came out of nowhere! For anyone lost this is the best function!!

于 2012-08-09T09:00:34.807 回答