如何将 NsDictionary 值从 tableview 传递到下一个视图

Posted

技术标签:

【中文标题】如何将 NsDictionary 值从 tableview 传递到下一个视图【英文标题】:How to pass NsDictionary value to next view from tableview 【发布时间】:2011-05-03 05:50:49 【问题描述】:

嗨,我正在从具有 NsDictionary 的模型类中获取 uitableview 中的值。这是我的代码

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

    //UILabel *label = nil;//label to hold description of city

    static NSString *CellIdentifier = @"Cell"; //cell identifier for each section oftable

    UITableViewCell *cell = [atableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
        cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle  reuseIdentifier:@"Cell"]autorelease]; //cell
            
//  cell.backgroundColor = [UIColor clearColor];//cell background color
    cell.selectionStyle  = UITableViewCellSelectionStyleNone;
    //label.backgroundColor = [UIColor  clearColor];

    cell.textLabel.font = [UIFont fontWithName:@"Arial" size:15.0];


    cell.textLabel.text = [NSString stringWithFormat:@"%@",[(Tweet *)[recentTweets objectAtIndex:indexPath.row] author]];
    cell.detailTextLabel.text = [NSString stringWithFormat:@"%@",[(Tweet *)[recentTweets objectAtIndex:indexPath.row] tweet]];
    cell.detailTextLabel.numberOfLines = 10;
    cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;


    UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@",
                                                                                            [(Tweet *)[recentTweets objectAtIndex:indexPath.row]urlString]]]]];
    cell.imageView.image = image;
return  cell;



- (void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier 

    recentTweets = [[NSMutableArray alloc] init] ;


    for(NSDictionary *d in statuses) 

        NSLog(@"See dictionary: %@", d);

        Tweet *tweet = [[Tweet alloc] initWithTweetDictionary:d];
        [recentTweets addObject:tweet ];
        NSLog(@"%@",[tweet author]);
        NSLog(@"%@",[tweet urlString]);



        [tweet release];


    

    [self.tableView reloadData];

我想在下一个视图中显示推文的详细信息。如何将其传递给下一个视图控制器

【问题讨论】:

【参考方案1】:

我认为您可以将 Tweet 作为下一个视图的属性,当您单击一个单元格时,然后将您的第一个视图的推文传递给下一个视图 -

在 NextView.h 中

#import "Tweet.h"

Tweet *tweet;

@property (nonatomic, retain) Tweet *tweet;

在 NextView.m 中

@synthesize Tweet *tweet;

并在第一个视图表委托

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

     Tweet *tweet = (Tweet*)[recentTweets objectsAtIndex:indexPath.row];
     NextView *nextView = [[NextView alloc] init];
     nextView.tweet = [tweet retain];
     [nextView release];

【讨论】:

【参考方案2】:

在您的第二个视图控制器中输入 NSDictionary 的实例变量。 @synthesize 那本字典。

然后在你当前的类中添加代码

yourSecondcontroller.dictionary = urDictionaryInCurrentClass;

【讨论】:

以上是关于如何将 NsDictionary 值从 tableview 传递到下一个视图的主要内容,如果未能解决你的问题,请参考以下文章

从 NSDictionary 设置时,BOOL 值从 NO 变为 Yes

从 NSDictionary 设置时,BOOL 值从 NO 变为 Yes

如何将值从模板传递到 ts 函数

如何将表值从一个数据库插入到另一个数据库? [关闭]

如何修复错误无法将 [NSDictionary] 快速转换为 NSDictionary?

如何在序列化为 json 之前将 NSDictionary 添加到另一个 NSDictionary