我正在寻找一种更快的方法来构建我的应用程序。因为我有一系列按钮都打开UIWebView。但是,我希望能够只使用One(1)WebView。我还希望能够在不同的View Controller中使用Buttons。
所以我的问题是,你如何让按钮从一个视图控制器进入另一个具有Web查看器的视图控制器,并且仍然能够从按钮加载不同的weblink?
我还是编程社区的新手。我这样做也都是自学。
谢谢你们!
答案 0 :(得分:2)
创建一个包含一个UIWebView和按钮的xib 并且在按钮的目标方法中,您指定新的url是重新加载webView
如下所述
-(void)reloadWebVieWithUrl:(NSString *)strUrl
{
NSURL *url = [NSURL URLWithString:strUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.wbView loadRequest:request];
}
- (IBAction)buttonAction:(UIButton *)sender {
NSString *url = @"";
switch (sender.tag) {
case 100:
{
url = @"https://www.google.co.in/";
break;
}
case 101:
{
url = @"https://in.yahoo.com/";
break;
}
case 102:
{
url = @"https://www.facebook.com/";
break;
}
case 103:
{
url = @"http://stackoverflow.com/";
break;
}
default:
break;
}
[self reloadWebVieWithUrl:url];
}
在Swift中
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet var wbView: UIWebView!
var strUrl = ""
@IBAction func buttonAction(sender: UIButton) {
switch (sender.tag){
case 100:
strUrl = "https://www.google.co.in/"
case 101:
strUrl = "https://in.yahoo.com/"
case 102:
strUrl = "https://www.facebook.com/"
case 103:
strUrl = "http://stackoverflow.com/"
default:
break;
}
reloadWebViewWithUrl(strUrl);
}
func reloadWebViewWithUrl(strUrl: NSString){
var url = NSURL(string: strUrl);
var request = NSURLRequest(URL: url);
wbView.loadRequest(request);
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
答案 1 :(得分:0)
您不需要多个Web视图或VC来执行此操作。
您只需更改NSURL即可反映您要将用户导航到的网站。
因此,例如按钮1的操作可能是:
NSString *webSite = "@http://google.com";
NSURL *url = [NSURL URLWithString:webSite];
NSURLRequest *request = [NSUrLRequest requestWithURL:url];
[webView loadRequest:request];
然后对于按钮2 - 使用相同的代码,使用相同的webView,只需将字符串更改为您要导航用户的网站。
希望这有帮助。