UIWebView的取消按钮/触摸

时间:2011-11-28 11:30:52

标签: objective-c ios uiwebview uiwebviewdelegate

我想知道是否有任何方法可以让用户解除WebView窗口,如果他不再想要它在屏幕上......? 我查看了这篇文章,但我并不理解。 How to cancel a UIWebView? 有人能给我一个例子吗? 这是我的代码:

CGSize webScreen1;
webScreen1 = [[UIScreen mainScreen] applicationFrame].size;
CGRect webFrame1 = CGRectMake((webScreen1.width/11.0) ,(webScreen1.height/19.0)  ,webScreen1.width/1.2,webScreen1.height/1.25);
defaultWebView.frame = webFrame1;
self.defaultWebView = [[UIWebView alloc] initWithFrame:webFrame1];
self.defaultWebView.backgroundColor = [UIColor whiteColor];
self.defaultWebView.scalesPageToFit = YES;
self.defaultWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

defaultWebView.inputView.hidden = YES;

[self.view addSubview: self.defaultWebView];

[self.defaultWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:
                                                            [NSString stringWithFormat:(NSString *)@"%@", @"http://www.google.com"]]]];

谢谢!

3 个答案:

答案 0 :(得分:2)

没有取消webView的功能,您需要做的是从父视图中删除UIWebView。如果您的UIWebViewself.view的子视图,那么您可以提供一个名为Close的按钮,其行为如下 -

- (IBAction)closeWebView:(id)sender
{
    [self.webView removeFromSuperView];
    self.webView = nil;
    return;
}

这应该从您的视图中删除webview。

答案 1 :(得分:0)

...让用户关闭WebView窗口的方法......

[self.defaultWebView removeFromSuperview];

答案 2 :(得分:0)

看看我会解释你上面附上的帖子中发生了什么,你会理解这个技术,

UIWebview是一个查看网页的组件,可能是html或其他类型, 有一种方法可以隐藏你的webview是在webview的html中添加一个动作,并在你的应用程序的代码中提出请求, 当您点击链接或ahref或UIwebview上的任何操作时,会有一个委托方法在继续请求之前自动运行

  • (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)请求navigationType:(UIWebViewNavigationType)navigationType;

您可以在html页面上添加按钮或链接,并在此方法上提出请求 例如

Thing to click

并在委托方法中

  • (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if([[[request URL] absoluteString] isEqualToString:@“http:// hideWebView /”]){     [self.webview setHidden:YES];     返回NO; } 返回YES; }

在这里,您将请求http://hideWebView/并在代理中搜索此请求,然后隐藏Web视图或您要执行的任何其他操作