我有一个显然是基本的问题。我有一个应用程序,其中有一个多媒体部分,其中包含视频(Youtube或Ted)。
当你选择一个视频(TableView)时,我打开一个带有一点描述的模态视图,如果它是一个Youtube视频,那么你必须点击它来打开视频。在另一种情况下,我使用MPMovieController。
我遇到的问题是Youtube视频。当我关闭播放器时,我的模态视图也会关闭,应用程序的其余部分使用模态视图不起作用(它不会打开模态视图)。
这里是描述视图的代码:
- (void)viewDidLoad{
[super viewDidLoad];
NSRange range = [sendVideo rangeOfString:@"youtube"];
if(range.length>0){
NSString *htmlString =[NSString stringWithFormat:@"<html><head>"
"<meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = no, width = 212\"/></head>"
"<body style=\"background:#F00;margin-top:0px;margin-left:0px\">"
"<div><object width=\"212\" height=\"172\">"
"<param name=\"movie\" value=\"%@\"></param>"
"<param name=\"wmode\" value=\"transparent\"></param>"
"<embed src=\"%@\""
"type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"212\" height=\"172\"></embed>"
"</object></div></body></html>",sendVideo,sendVideo];
[youtube loadHTMLString:htmlString baseURL:nil];
}
else
{...
以下是我用于在TableView中选择视频的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if(videosContenido ==YES){
VerDetalles *vd = [[[VerDetalles alloc]initWithNibName:@"VerDetalles"
bundle:nil]autorelease];
vd.sendTitle = [aux2 objectAtIndex:[indexPath row]];
vd.sendDesc = [aux6 objectAtIndex:[indexPath row]];
vd.sendVideo = [aux4 objectAtIndex:[indexPath row]];
UINavigationController *navController= [[[UINavigationController alloc]
initWithRootViewController:vd]autorelease];
if(navController){
navController.modalPresentationStyle = UIModalPresentationFormSheet;
navController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
}else {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
[self presentModalViewController:navController animated:YES];
}
答案 0 :(得分:0)
我遇到了完全相同的问题。我注意到没有在我的应用委托中设置window.rootViewController属性解决了这个问题。 (只需调用[window addSubview:rootViewController.view])。但是,在iOS 6中,当未设置窗口的rootViewController时,自动旋转不起作用。