我正在尝试从一个表中传递一个数组,并将其填充到另一个表中。父表位于UINavigationController
说“ mainNavig ”。子表被放置另一个ViewController
名称为“ SongsofAlbum ”。我父表的didSelectRowAtIndexPath
如下,
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
albumName = [eliminateDupe objectAtIndex:indexPath.row];
temp = [dictforalbum allKeysForObject:albumName ];
songs = [NSMutableArray arrayWithCapacity:[temp count]];
for (NSString *filename in temp) {
[songs addObject:[[filename lastPathComponent] stringByDeletingPathExtension]];
}
NSLog(@"songs are %@",songs);
songObj = [[SongsofAlbum alloc]initWithNibName:@"SongsofAlbum" bundle:nil];
[mainNavig pushViewController:songObj animated:YES];
songObj.albumname = albumName;
songObj.songArray = songs;
NSLog(@"the song object array is %@ ",songObj.songArray)
}
songObj.songArray的nslog返回上述方法中的数据。但我遇到的问题是,当我在子视图控制器中调用此songArray时,它返回NULL。我甚至属性合成了数组。有什么建议吗?
答案 0 :(得分:0)
但我面临的问题是,当我把这首歌叫做孩子时 查看控制器它返回NULL。我甚至属性合成了 阵列。
在其他ViewController中,您正在创建此类的新实例。新实例将为NULL。
您无需创建新实例,因此您需要使用此相同对象的值。
您可以通过以下方式执行此操作:How to make button in child view to update information in its parent view?
答案 1 :(得分:0)
您可以在AppDelegate中获取歌曲数组,然后分配songObj.songArray =您可以在SongsofAlbum类的viewDidLoad中分配的歌曲
AppDelegate *app;
- (void)viewDidLoad
{
[super viewDidLoad];
app=(AppDelegate *)[[UIApplication sharedApplication]delegate];
songarray= [[NSMutableArray alloc]initWithArray:app.songs];
}
希望这会奏效。