如何将 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