我有2个表视图。一个是类别,另一个是视频。我将最喜欢的歌曲添加到一个数组中。但是,如果选择了喜爱的类别,我怎样才能重新加载我最喜欢的视频?
这就是我正在尝试但我的桌面视图是空的。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView.tag==0) {
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
cell=[[TableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
}
int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];
cell.title.text=[[stories objectAtIndex: indexPath.row] objectForKey: @"title"];
NSString * aux=[[stories objectAtIndex: indexPath.row] objectForKey: @"url"];
NSString * videoHTML =[NSString stringWithFormat: @"<iframe type=\"text/html\" width=\"100\" height=\"80\" src=\"%@\" frameborder=\"0\"></iframe>",aux] ;
NSString *imagine=[[stories objectAtIndex:indexPath.row]objectForKey:@"thumbnail"];
cell.imageSong.image=[UIImage imageNamed:imagine];
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:imagine]];
cell.imageSong.image = [UIImage imageWithData:imageData];
cell.imageSong.contentMode=UIViewContentModeScaleAspectFit;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (!tableView.tag==0) {
int row =indexPath.row;
if (row==0) {
self.title1.text=@"ALL SONGS";
[stories removeAllObjects];
[self parse];
i=0;
[self showMenu:nil];
}
else if (row==1) {
self.title1.text=@"FAVORITE";
b=[favoriteArray count];
if (b==0) {
NSLog(@"NSArray empty");
[[[UIAlertView alloc]initWithTitle:@"Attention !" message:@"No videos !" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]show];
}
else{
[stories removeAllObjects];
[self.tableView reloadData];
i=0;
[self showMenu:nil];
}
}
else
{
self.title1.text=[categoryArray objectAtIndex:indexPath.row-1];
[stories removeAllObjects];
NSString * path =[feeds objectAtIndex:indexPath.row-1];
[self parseXMLFileAtURL:path];
i=0;
[self showMenu:nil];}
self.karaokeBTn.hidden=YES;
self.menu.hidden=NO;
self.title1.hidden=NO;
}
-(void)parse{
if ([stories count] == 0) {
for (int i=0; i<[feeds count]; i++) {
NSString * path =[feeds objectAtIndex:i];
[self parseXMLFileAtURL:path];
}
}
}
在最喜欢的数组中,我已经拥有了视频,标题和图片的网址。我不需要再次解析Feed。
答案 0 :(得分:1)
也许你想在解析之后重新加载你的表:
-(void)parse{
if ([stories count] == 0) {
for (int i=0; i<[feeds count]; i++) {
NSString * path =[feeds objectAtIndex:i];
[self parseXMLFileAtURL:path];
}
[self.tableView reloadData];
}
答案 1 :(得分:0)
我不确定我是否理解你的问题。但是既然你说你的tableView是空的,那就是一个可能的解决方案。
如何设置stories
数组?如果是从Web获取异步数据,则在调用这些委托方法时,您将拥有一个空的stories
数组。
完成数据提取后,您必须重新加载表视图。在数据提取方法的完成块上。
[self.tableView reloadData];