如何在页面的一部分中打开uiwebview中的链接?

时间:2010-11-18 06:22:24

标签: iphone uiwebview

我现在正在制作一个应用程序,在一个页面中我有带后退按钮和uiwebview的导航栏。单击按钮时,应加载此页面。我的问题是,当加载这个页面时,它覆盖整个页面并传递了url,并不仅限于那个特定的uiwebview。结果,我无法导航到其他页面。

我使用了以下代码:

- (void)viewWillAppear:(BOOL)animated
{
  NSString *url = [NSString stringWithFormat:@"http://www.facebook.com/"];

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
 [webview loadRequest:request];

 [super viewWillAppear:animated];
}

有人可以回答我,如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:3)

当您使用:[[UIApplication sharedApplication] openURL...时,它会在关闭您的应用后调用safari打开该网址。

因此,创建一个WebViewController并在viewDidLoad中添加以下内容:

NSString *urlAddress;
if(siteType == @"facebook"){
  self.title = @"Facebook";
  urlAddress = @"http://www.facebook.com";
}

//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];

//URL Requst Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

//Load the request in the UIWebView.
[webView loadRequest:requestObj];

并在根控制器的按钮中将此添加到操作:

WebViewController *wvc = [WebViewController alloc];
wvc.siteType = @"facebook";
[self.navigationController pushViewController:wvc animated:YES];

当然对于WebViewController标题,您需要:

@interface WebViewController : UIViewController <UIWebViewDelegate>
{
    NSString *siteType;
    IBOutlet UIWebView *webView;
}
@property (nonatomic, retain) NSString *siteType;
@property (nonatomic, retain) UIWebView *webView;
@end

并且不要忘记@synthesize siteType,webView;