构成TableViewController的详细视图

时间:2012-07-16 13:10:04

标签: objective-c ios5 uitableview

我正在使用xcode开发iOS5项目。 ARC开启了 使用故事板

我有一个名为事件的类,其中包含事件信息。 我在故事板上有一个链接到我的 ListViewController.m 文件的TableView 我还在故事板上发了一个名为'Detail'的视图和一个 DetailViewController.m 文件(它链接到了它)

目前在我的 ListViewController.m 中我使用了这个函数:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"detail"];
    [self.navigationController pushViewController:detail animated:YES];
}

listview中的项目由listviewcontroller中的var组成,名为events。

我想要做的是当我初始化详细视图时,我想将与该列表项相关联的事件传递给它,这样我就可以在 DetailViewController.m中用正确的信息填充标签中的文本。

我想这样做,因为我还会为事件提供其他表示(在地图上,......),并希望对所有事件使用此详细信息视图。

如何最好地设置它?

1 个答案:

答案 0 :(得分:0)

在'DetailViewController'上添加'Event'属性并在执行推送之前将其分配给控制器:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Get here the selected event fron the datasource and assign it to yourSelectedEvent

    DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"detail"];

    [detail setEvent: yourSelectedEvent];

    [self.navigationController pushViewController:detail animated:YES];
}

然后您可以使用它将文本放到标签上。