【问题标题】:uiwebviewdelegate not called from non-visible uiwebviewuiwebviewdelegate 未从不可见的 uiwebview 调用
【发布时间】:2012-04-27 07:50:43
【问题描述】:

我试图避免 UIWebView 加载内容时显示的空白窗口。我不想在 UIWebView 上放置背景,而是在当前窗口上放置一个 HUD,然后在加载内容时推送包含 uiwebview 的新 uiviewcontroller。这是我所做的(为了理智,代码缩短了):

第一视图:

MyViewController *myVC = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
myVC.parentController = self.navigationController;
UIView *myView = [myVC view];      // Force view to load

我的视图控制器:

- (void)viewDidLoad
{
  ...
  [myWebView setDelegate:self];
  [myWebView loadHTMLString:htmlString baseURL:baseURL];
  ...
 }


- (void) webViewDidFinishLoad:(UIWebView*) webView {
     [parentController pushViewController:self animated:YES];
}

好的,所以viewDidLoad 被调用了,但是没有一个 uiwebviewdelegate 方法被调用。但是,如果我推动视图控制器

第一视图:

MyViewController *myVC = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.navigationController myVC animated:YES];

然后MyViewController 中的所有 uiwebviewdelegate 方法都会被调用。

我被困住了。

【问题讨论】:

    标签: iphone objective-c uiwebview uiwebviewdelegate


    【解决方案1】:

    我不知道您的应用程序的具体要求,但通常更好的做法是先推送您的视图控制器,然后在您的内容加载时在新的视图控制器顶部显示 HUD。您可以在 viewDidLoad 中将 HUD 添加到视图控制器的视图中,并在 webView 的 webViewDidFinishLoad 回调方法中删除 HUD。

    如果您还没有这样做,请确保您在后台线程中加载 Web 视图的内容,以免在内容加载时阻塞主 UI 线程,否则用户会觉得您的应用暂时具有冷冻。

    【讨论】:

    • 你说的是我在做什么,但我遇到的问题是,当我推动视图控制器时,uiwebview 需要 0.5 到 4 秒才能加载内容,而用户只看到一个在那段时间空白的白色窗口。我可以在加载 html 内容时设置背景图像,但我认为最好在第一个视图上抛出一个 HUD,直到内容被加载,然后显示 uiwebview ......我认为一些插页式图像会在 0.5 秒的场景中分散注意力。
    • 我同意显示 HUD 是可行的方法,但我仍然认为最好在转场发生后加载内容时在目标视图控制器上显示 HUD。如果您仍然想在您的第一个视图控制器上显示 HUD,那么我会让您的第一个视图控制器负责请求 htmlString,然后在收到响应时将响应字符串设置为目标视图控制器上的属性,然后再将其推送到导航堆栈.
    • 我认为我们有点偏离了轨道……或者我可能遗漏了一些东西。我的问题是,在推送目标视图控制器之前,没有调用任何 uiwebviewdelegate 方法。一旦 uiwebview 有了 HTML,uiwebview 仍然需要几秒钟来加载链接/图像,并且在那段时间我有一个空白的白色屏幕。我想找出为什么没有调用委托方法......或者找到其他方法来等到 uiwebview 加载内容之前再显示它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2013-03-17
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多