2011-03-21 171 views
4

如何告訴我的UIWebView在新視圖中使用UINavigationController打開鏈接?UIWebView和導航控制器

我發現這個線程,但IMA有點困惑的地方實行的是一段代碼(IM新目標-C/IPhone)

Clicking a link in UIWebView pushes onto the NavigationView stack

我看來只包含一個簡單的WebViewUINavigationController在上面

#import <UIKit/UIKit.h> 


@interface ContactViewController : UIViewController { 

    IBOutlet UIWebView *webView1; 
} 

@property (nonatomic, retain) UIWebView *webView1; 

回答

6

這裏是假設你的視圖控制器(容納的WebView)步驟已經是一個導航控制器內。

內.H - 確保您的視圖控制器符合的WebView委託

UIViewController <UIWebViewDelegate> 

內.M - 添加以下代碼(或只是實現此方法與任何你想要的邏輯)

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ 
if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
    YourNextViewController *ynvc = [[[YourNextViewController alloc] initWithNibName:@"YourNextViewController" bundle:nil] autorelease]; 
    ynvc.ivar1 = value1; 
    ynvc.ivar2 = value2; 

    UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease]; 
    [[self navigationItem] setBackBarButtonItem:backButton]; 

    [self.navigationController pushViewController:ynvc animated:YES]; 

    return NO; 
} 
return YES;} 
+0

謝謝,我錯過了 2011-04-06 09:03:17

+0

的概念沒有問題 - 如果解決了這個問題並且一切正常,請不要忘記接受答案。 – 2011-04-06 13:17:59

+0

我面臨同樣的問題,但這不與我合作:( – Sedz 2012-07-19 23:43:04

0

我是很新,客觀C/iPhone也一樣,但我會嘗試..

正在爲您的WebView新的viewController,並推入您的UINavigator

yourWebViewController *y = [[yourWebViewController alloc] init]; 
[self.navigationController pushViewController:y animated:YES]; 
[y release];