2013-01-20 103 views
1

所以我在设置时遇到了一些困难。我使用这个:UIWebView open links in Safari代码,但我似乎无法让它工作。在Safari中打开UIWebView URL

这是我的.h文件:

#import <UIKit/UIKit.h> 

@interface SecondViewController : UIViewController 
{ 

} 

@property (strong, nonatomic) IBOutlet UIWebView *webView; 

@end 

这是我的.m文件:

#import "SecondViewController.h" 

@interface SecondViewController() 

@end 

@implementation SecondViewController 
@synthesize webView = _webView; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http:m.youtube.com/user/haatfilms/uploads"]]]; 
    [_webView setBackgroundColor:[UIColor clearColor]]; 
    [_webView setOpaque:NO]; 
    _webView.scrollView.bounces = NO; 
    _webView.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
} 

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType { 
    if (inType == UIWebViewNavigationTypeLinkClicked) { 
     [[UIApplication sharedApplication] openURL:[inRequest URL]]; 
     return NO; 
    } 

    return YES; 
} 

@end 

而且我觉得我已经连接UIWebView的委托:

webView Delegate

但是,当我点击一个链接,它仍然加载在UIWebView中,而不是在S afari。

任何人都可以说明为什么它不起作用吗?非常感谢你

+0

你已经检查了这http://stackoverflow.com/questions/2899699/uiwebview-open-links-in-safari – JOM

+0

我引用了我用我的问题。虽然我发现它不适用于YouTube,但与其他网站一起使用,但稍微玩了一下。 – Stickerbox

+0

是的,YouTube似乎是以某种不同的方式在iOS内部处理 – JOM

回答

0

发现问题。而不是使用IB连接我webView的委托,只是这样做:

[super viewDidLoad]; 

    webView.delegate = self; 
相关问题