【发布时间】:2018-06-26 09:49:49
【问题描述】:
我的应用程序在 collectionview 中选择项目后呈现 viewcontroller(detailsview):
[self presentViewController:detailView animated:YES completion:^{
}];
从新的 viewcontroller 启动 avplayer 之后,我将关闭播放器,然后是(detailsview)viewcontroller 并返回主视图控制器。这里应用程序崩溃并给出错误 [detailsviewController retain]: message sent to deallocated instance。这是我在苹果电视上做的。使用菜单操作关闭控制器。
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
if([assetType isEqualToString:@“MOV”] ||[assetType isEqualToString:@"PRG”] )
{
// Asset landing page
NSMutableArray *assets=[[NSMutableArray alloc]initWithObjects:@"ViewAll",nil];
[assets addObjectsFromArray:self->allAssetsArray];
NSDictionary *SelectedAsset=[self->allAssetsArray objectAtIndex:indexPath.row];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
DetailsViewController *detailView =(DetailsViewController*)[storyboard instantiateViewControllerWithIdentifier:@"DetailsViewController"];
OnDemandAssetModel * assetModel=[[OnDemandAssetModel alloc]init];
assetModel.identifier=[SelectedAsset objectForKey:@"id"];
assetModel.assetCategory=@"";//[category objectForKey:@"name"];
assetModel.assetId=[SelectedAsset objectForKey:@"assetId"];
assetModel.assetName=[SelectedAsset objectForKey:@"movieName"];
assetModel.assetDuration=[SelectedAsset objectForKey:@"runningTime"];
assetModel.assetGenre=[SelectedAsset objectForKey:@"genre"];
assetModel.assetCategoryType=@"SVoD";
assetModel.assetDirector=[SelectedAsset objectForKey:@"director"];
assetModel.assetActors=[SelectedAsset objectForKey:@"cast"];
assetModel.assetCC=[SelectedAsset objectForKey:@""];
assetModel.assetAvailableUntil=[SelectedAsset objectForKey:@"availableUntil"];
assetModel.assetRating=[SelectedAsset objectForKey:@"rating"];
assetModel.assetPosterPath=[SelectedAsset objectForKey:@"movieImage"];
assetModel.assetContentType=[SelectedAsset objectForKey:@"movieType"];
assetModel.assetDescription=[SelectedAsset objectForKey:@"description"];
assetModel.assetReleasedYear=[SelectedAsset objectForKey:@"releasedYear"];
assetModel.subscriptionStatus=[SelectedAsset objectForKey:@"subscription"];
detailView.assetModel=assetModel;
detailView.selectedAssetID=assetModel.assetId;
detailView.selectedIndex=[NSIndexPath indexPathForRow:indexPath.row+1 inSection:0];
detailView.identifier=assetModel.identifier;
[self showViewController:detailView sender:nil];
// [self presentViewController:detailView animated:YES completion:^{
// }];
}
}
【问题讨论】:
-
显示代码在哪里添加 viewcontroller 和 avplayer
-
如果您使用ARC,应用程序会崩溃或报错。
-
是的,我正在使用 ARC。
-
嗨 piotri 我添加了代码,请检查一次。
-
嗨,Mahboob,我怎样才能摆脱这个问题。
标签: objective-c uiviewcontroller uicollectionview apple-tv avplayerviewcontroller