我有两个IBActions
。在一个操作中,我正在加载UIWebview
以显示我的包中的PDF
文件。单击其他按钮后,整个UIWebView
应从superview中删除。
我尝试过使用:
[webview removeFromSuperview];
和
webview.hidden=YES;
这些都不起作用。他们隐藏了我的UIWebView
一秒钟,但之后再次出现。
是的 我以编程方式创建了UIWEBVIEW,并在界面文件中添加了UIWebvieWDelegate。但是在初始化UIWebView时我没有设置webview.delegate = self;这是问题吗?
答案 0 :(得分:1)
您是否已将Referencing Outlet
与 Interface Builder 中的班级@property
相关联?
如果您不这样做,可能是为什么您无法访问源代码中的UIWebView
。为了您的利益,您应该检查webview
的指针,如果它是nil
长期存在,那么100%您没有相互连接它们。
答案 1 :(得分:0)
-(void)viewDidLoad
{
[super viewDidLoad];
process = [ProcessingData new];
[DetailView setHidden:YES];
DetailView.hidden = YES;
[DetailView removeFromSuperview];
self.DetailView = nil;
}
然而它仍然无法正常工作,因为我在WebView中几乎没有标签在视图加载时不会消失,当我查看“StoryBoard”时我注意到标签不是
你可以在WebView下看到libel的层次结构,它们是主视图的子视图,它们假设与表视图层次结构相同
所以在可能的情况下,WebView正在隐藏,但标签不是因为它们不是Webview的一部分。
如何排序此问题,如果您真的不需要使用正常的Web视图,否则您必须隐藏该视图中的所有标签。希望那是帮助
答案 2 :(得分:0)
我试图做这样的事情。对我有用的解决方案是将UIview对象添加为子视图以使用webview框架进行查看并将其置于顶部....当您想要使uiwebview可见时,只需从superview中删除该uiview对象。
答案 3 :(得分:0)
我不知道obj-c,但仍然迅速发布了一个对我有用的解决方案。基本上,您必须使用主线程删除webview。
DispatchQueue.main.async {
print("\nremoving webview\n")
self.myWebView.stringByEvaluatingJavaScript(from: "document.body.innerHTML='';")
self.myWebView.removeFromSuperview()
}