0

关于将数组推送到 tableView 单元格的 stackoverflow 的最佳答案是“从更简单的事情开始”。我认为我们可以做得比这更好...

我相信我已经准备好了一切,除了我找不到从 rootView 获取数据的正确方法。见下文。

下面的代码将一个数组推送到 DetailView 控制器,其中三个单元格在一个组中,顶部单元格中带有“Get Cell Info Here”。有人可以解释我需要做什么才能将实际数据输入顶部单元格吗?谢谢

RootViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath     *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    DetailViewController *selectedCell = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
    [self.navigationController pushViewController:selectedCell animated:YES];

}

DetailViewController.h

@interface DetailViewController : UITableViewController {

    NSArray *displayCell;

}
@end

细节视图控制器.m

- (void)viewWillAppear:(BOOL)animated
{

    //Display the selected cell data

    displayCell = [[NSArray alloc] initWithObjects:@"Get Cell Info Here", nil];  

    //Set the title of the navigation bar
    self.navigationItem.title = @"wtf";
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 


    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] ;

    // Make cell unselectable
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 

    NSString *cellText = nil;

    switch ( indexPath.row ) {
        case 0: {
            cellText = [displayCell objectAtIndex:indexPath.row]; 

            break ;
        }
        case 1: {

            break ; 
        }       
        case 2: {

            break ;
            default:
                break;
            }               
        }

        cell.textLabel.text = cellText;
        return cell;

}
4

1 回答 1

0

向 DetailViewController 添加一个属性,如下所示:

@property (nonatomic, retain) NSArray *passedItems;

然后让根视图控制器按如下方式传递项目:

selectedCell.passedItems = passedItems; // passedItems is array in rootview controller

然后你可以在DetailedViewController中使用passedItems。

于 2012-05-29T21:58:21.107 回答