0

我有两个IBActions。在一个动作中,我正在加载UIWebview以显示PDF我的包中的文件。单击另一个按钮时,应该将整个按钮UIWebView从超级视图中删除。

我试过使用:

[webview removeFromSuperview];

webview.hidden=YES;

这些都不起作用。他们隐藏了我UIWebView一秒钟,但它又出现了。

是我以编程方式创建了 UIWEBVIEW 并在界面文件中添加了 UIWebviewWDelegate。但是在初始化 UIWebView 时我没有设置 webview.delegate=self; 是问题吗?

4

4 回答 4

1

您是否已连接Referencing OutletInterface Builder@property中的类?

如果您不这样做,这可能是您无法访问UIWebView源代码的一个可能原因。为了你,你应该检查 的指针webview,如果它是nil长期的,有 100% 你没有相互连接。

于 2012-07-17T08:55:00.043 回答
0

我试图做这样的事情。对我有用的解决方案是将 UIview 对象添加为子视图,以使用 webview 的框架进行查看并将其置于顶部......当你想让 uiwebview 可见时,只需从超级视图中删除该 uiview 对象。

于 2014-04-28T09:58:45.143 回答
0

好的,这似乎是个老问题,但我也可以看到有近千人查看它,并且可能有同样的问题。所以我对将来有同样问题的人的回答。我只是在做一些微笑的事情,并想在某个动作时隐藏 web 视图。我试过以下

-(void)viewDidLoad
{
    [super viewDidLoad];
    process = [ProcessingData new];
    [DetailView setHidden:YES];
    DetailView.hidden = YES;
    [DetailView removeFromSuperview];
    self.DetailView = nil;
}

但是它仍然无法正常工作,因为我在 WebView 中几乎没有标签在视图加载时不会消失,当我查看“StoryBoard”时,我注意到标签不是

在此处输入图像描述

你能看到 WebView 下诽谤的层次结构吗,它们是主视图的子视图,它们假设与表视图层次结构相同

所以在可能的情况下 WebView 被隐藏但标签不是因为它们不是 Webview 的一部分。

如何解决这个问题,如果你真的不需要 web 视图使用普通的,否则你必须隐藏该视图中的所有标签。希望这有帮助

于 2014-02-08T14:46:01.920 回答
0

我不知道 obj-c,但仍然发布了一个快速为我工作的解决方案。基本上你必须使用主线程来删除 webview。

DispatchQueue.main.async {
            print("\nremoving webview\n")
            self.myWebView.stringByEvaluatingJavaScript(from: "document.body.innerHTML='';")
            self.myWebView.removeFromSuperview()
        }
于 2019-02-19T13:30:40.853 回答