一个WebView的多个UIButtons

时间:2014-12-14 12:40:44

标签: ios swift uiwebview uibutton xcode6.1

我正在寻找一种更快的方法来构建我的应用程序。因为我有一系列按钮都打开UIWebView。但是,我希望能够只使用One(1)WebView。我还希望能够在不同的View Controller中使用Buttons。

所以我的问题是,你如何让按钮从一个视图控制器进入另一个具有Web查看器的视图控制器,并且仍然能够从按钮加载不同的weblink?

我还是编程社区的新手。我这样做也都是自学。

谢谢你们!

2 个答案:

答案 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,只需将字符串更改为您要导航用户的网站。

希望这有帮助。