我现在正在制作一个应用程序,在一个页面中我有带后退按钮和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];
}
有人可以回答我,如何解决这个问题?
提前致谢。
答案 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;