如何确定何时删除UIWebView模式视图?

时间:2011-01-11 07:01:42

标签: iphone iphone-sdk-3.0 uiwebview webview uiwebviewdelegate

我有一个UITableView,当按下一个单元格时,会在UIWebView加载其内容(mp3文件)时显示加载视图。当UIWebView开始加载时,它会推动其模态视图。该部分工作正常 - 加载视图显示,直到模态控制器向上推。

问题是我找不到任何类型的方法(web视图委托,viewDidAppear等)来确定模式视图何时关闭,所以我可以在返回到tableview时删除加载视图。当模态视图关闭时,用户仍然可以看到加载视图。

我尝试过的事情:

1)试图使用webViewDidFinishLoad,但它永远不会被调用。 (不接受mp3的调用吗?)

2)删除webViewDidStartLoad上的加载视图 - 问题是用户在继续加载时看着白色屏幕,这有点俗气,我试图避免它。

3)将UIWebView放在自己的UIViewController中,并将其视图的alpha设置为0.(想法是看不到白色视图并继续看到加载屏幕,直到模态视图出现,然后可能会捕获viewDidX方法。)

基本上,我想要tableview - >加载屏幕 - > webview模态视图 - > tableview(没有加载屏幕)。

我能想到的另一件事就是在模态视图的“完成”按钮的顶部创建一个隐形按钮,并使用它来确定webview何时关闭。

想法或建议?

谢谢,

约翰

2 个答案:

答案 0 :(得分:0)

你在哪里以及如何用这样的方式解雇模态视图:

[self dismissModalViewControllerAnimated:YES];

此时,您可以发送您想要的通知 加载视图停止:

[[NSNotificationCenter defaultCenter] postNotificationName:@"STOP_LOADING_VIEW" object:nil];

显示加载视图的类必须遵守此通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stopLoadingView) name:@"STOP_LOADING_VIEW" object:nil];

并执行处理加载视图的方法。 有很多方法可以实现此行为,但您必须显示一些代码。

答案 1 :(得分:0)

我认为在这种情况下更好的解决方案是使用AVAudioPlayer,因为我只想要音频,所以这就是我最终可能会做的事情。