“UIButton”可以在“UIWebView”中打开同一个“UIView”中的网页吗?

时间:2012-07-11 17:30:16

标签: ipad uiview uiwebview uibutton push

我一直致力于iPhone / iPad设备的这个项目,在完成项目的iPhone部分后,我的灵感来自于改变iPad项目的风格。

我的情景:

我有一个视图,里面有UIButtons链接到网站。最初我计划这些按钮使用Push序列来打开单独的View,其中已经有一个UIWebView来打开网页。但后来我想也许我可以使用UIButtons在父视图中打开所需的网页。

我的问题:

是否可以使用UIButton加载网页,但是在与用于加载网页的UIButton相同的视图中的UIWebView中?

先谢谢大家,我认为这应该是可能的,但目前没有任何想法。

1 个答案:

答案 0 :(得分:1)

当然可以(真的......为什么不呢?)。您只有一个UIView,其中包含UIWebView个和UIButton个子视图。然后你可以做这样的事情:

// Suppose that self.mainView is the main container (and an IBOutlet)
// and self.webView is the UIWebView (also an IBOutlet)
// and of course your UIButtons (connected to IBActions)

-(IBAction)visitSiteA:(id)sender
{
    NSString *urlAddress = @”http://www.siteA.com”;

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

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

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

-(IBAction)visitSiteB:(id)sender
{
    NSString *urlAddress = @”http://www.siteB.com”;

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

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

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

现在,如果你不使用InterfaceBuilder,你可以在代码中构建你的webView和按钮,然后将它们添加到你的mainView。

最后,如果你计划有很多按钮,你可以通过将加载部分分解为一个单独的方法来优化代码,然后从你的IBActions中传递url。像这样:

-(void)loadUrlAddress:(NSString *)urlAddress
{
    //Create a URL object.
    NSURL *url = [NSURL URLWithString:urlAddress]; 

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

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

-(IBAction)visitSiteA:(id)sender
{
    [self loadUrlAddress:@"http://www.siteA.com"];
}