1

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

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

我尝试过的事情:

1) 尝试使用 webViewDidFinishLoad,但它从未被调用。(不会在 mp3 上调用?)

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

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

本质上,我想要 tableview -> loading screen -> webview modal view -> tableview (不存在加载屏幕)。

我唯一能想到的另一件事是在模式视图的“完成”按钮上创建一个不可见的按钮,并使用它来确定 web 视图何时关闭。

想法或建议?

谢谢,

约翰

4

2 回答 2

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];

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

于 2011-01-11T08:55:41.190 回答
0

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

于 2011-01-11T17:59:57.333 回答