2011-11-28 97 views
1

我想知道是否有任何方法可以讓用戶關閉WebView窗口,如果他不想在屏幕上顯示...? 我看了這篇文章,但我不明白。 How to cancel a UIWebView? 任何人都可以給我一個例子嗎? 這是我的代碼:取消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"]]]]; 

謝謝!

回答

2

有沒有這樣的事情取消一個webView,你需要做的是從父視圖中刪除UIWebView。如果您UIWebViewself.view一個子視圖,那麼你可以提供一個名爲Close按鈕,它的行爲是這樣 -

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

這應該從您的視圖中刪除的網頁流量。

+1

謝謝Srikar! 對於任何需要的人 - 我是這樣做的: UIButton * hideWebViewBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; hideWebViewBtn。frame = CGRectMake(5,5,20,30); [hideWebViewBtn addTarget:self action:@selector(hideWebViewBtn :) forControlEvents:UIControlEventTouchUpInside]; [defaultWebView addSubview:hideWebViewBtn]; [self.defaultWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: [NSString stringWithFormat:(NSString *)@「%@」,@「http://www.oranim.ac.il/sites/heb/guide/吸取給藥/常見問題/頁/ Default.aspx的「]]]]; –

+1

這是釋放webview的方法: - (IBAction)hideWebViewBtn:(id)sender { {self.defaultWebView removeFromSuperview]; self.defaultWebView = nil; return; } –

0

...的方式讓用戶關閉該窗口的WebView ...

[self.defaultWebView removeFromSuperview]; 
0

看看我將解釋上述連接什麼一切發生的時候在後,你會明白的技術,

的UIWebview是一個查看網頁的組件,它可以是html或其他類型, 有一種方法可以隱藏你的webview,是在webview的html中添加一個動作並在你的應用的代碼中包含請求, 當你點擊鏈接或ahref或UIwebview上的任何操作時,都有一個自動的委託方法的角度講與所述請求繼續之前運行

  • (BOOL)web視圖:(的UIWebView *)webView的shouldStartLoadWithRequest:(的NSURLRequest *)請求navigationType:(UIWebViewNavigationType)navigationType;

可以在這個方法 添加的HTML頁面上的按鈕或鏈接和ovveride請求例如

Thing to click

,並在委託方法

  • (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {[[request URL] absoluteString ] isEqualToString:@「http:// hideWebView /」]){ [self.webview setHidden:YES]; return NO; } return YES; }

在這裏你ovveride請求http://hideWebView/,並在委託你搜索這個請求,然後hiddes Web視圖或其他任何你想要做的