【问题标题】:iOS how to remove existing UIWebView and reinitialise itiOS如何删除现有的UIWebView并重新初始化它
【发布时间】:2018-06-05 07:49:33
【问题描述】:

我有一个 UIWebView,它在用户导航时加载一个页面,他可以转到 7 个级别,我的意思是他可以转到 7 个具有不同 URL 的不同页面。

现在我想直接回到第一页,而不是一个接一个地返回。

我在 UIWebView 中找不到任何 API 来执行此操作,所以我想再次加载第一页 url,但 UIWebView 的 cangoback 将返回 true。

所以我想我会重新初始化 webview 并加载 URL

self.webview=[self.webview init];

正如预期的那样,它会加载新的 url,并且 UIWebView 的 cangoback 返回 false,这很好。

但问题是当我尝试向下滚动页面时,我可以看到它后面的上一页作为滚动视图的背景。

关于如何解决问题的任何想法

【问题讨论】:

    标签: ios objective-c uiwebview initialization back-button


    【解决方案1】:

    您将保留旧的 web 视图,但只是将其称为 init 例程(您不应多次执行此操作)。相反,调用:

    self.webview = [[UIWebView alloc] init];
    

    这将为您提供一个全新的网页,就像您最初使用的那样,并将调用 ARC 来处理旧网页。

    【讨论】:

    • 它删除了分配给 webview 的所有约束,并且 webview 在屏幕上根本看不到
    • 有几个选项:1)您可以在替换 webview 之前保存约束并将它们重新添加。2)使用 JavaScript 清除页面和历史记录,如这篇文章:stackoverflow.com/questions/3799918/…使用以下命令:[webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"];
    • 保存约束...您的意思是将约束分配给局部约束属性。
    • 我会检查并通知您
    猜你喜欢
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 2019-12-21
    • 2016-06-26
    • 2012-08-24
    • 1970-01-01
    相关资源
    最近更新 更多