问题描述
- 将电影标题传递到视图中
-
我能解析Json文件到表视图中,但是不知道怎么获取电影标题,作为标题传递到详细视图中。我用这样的方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"movieCell"; movieCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; id video = [self.model.videos objectAtIndex:indexPath.row]; NSString *rl = [video objectForKey:@"release_date"]; NSString *imageURL; if ([[video objectForKey:@"poster_path"] class] != [NSNull class]) imageURL = [video objectForKey:@"poster_path"]; else imageURL = @"icon.jpg"; if (rl != (NSString *)[NSNull null]){ NSString *dateStr = rl; // Convert string to date object NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyy-MM-dd"]; NSDate *date = [dateFormat dateFromString:dateStr]; // Convert date object to desired output format [dateFormat setDateFormat:@"MM/YYYY"]; NSString *released = @"Released: "; NSString *fullDate; dateStr = [dateFormat stringFromDate:date]; fullDate = [NSString stringWithFormat:@"%@ %@", released, dateStr]; cell.videoDescriptionLabel.text = fullDate; } else{ cell.videoDescriptionLabel.text = @"N/A"; } cell.videoTitleLabel.text = [video objectForKey:@"title"]; NSString* thumbnailURL = [NSString stringWithFormat:@"http://cf2.imgobject.com/t/p/w154%@",imageURL]; [cell.videoThumbnail setImageWithURL:[NSURL URLWithString:thumbnailURL] placeholderImage:[UIImage imageNamed:@"icon"]]; return cell; } #pragma mark - Table view delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; DetailViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"boot"]; [self.navigationController pushViewController:vc animated:YES]; }
解决方案
id video = [self.model.videos objectAtIndex:indexPath.row];
vc.title = [video objectForKey:@"title"];
另外,你不应使用id作为video的类型。
解决方案二:
假设有一个命名videoTitle的属性,放在 DetailViewController中:
@property (nonatomic, strong) NSString *videoTitle;
就可以这样:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
DetailViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"boot"];
vc.videoTitle = [[self.model.videos objectAtIndex:indexPath.row] objectForKey:@"title"];
[self.navigationController pushViewController:vc animated:YES];
}
时间: 2024-10-01 07:28:32