一个UIViewController中的多个webview

时间:2014-08-12 20:19:55

标签: objective-c xcode uiviewcontroller uiwebview storyboard

假设我有一个带有两个按钮的UIViewController,两个按钮(推送)到另一个UIViewController,其中有两个UIWebViews(显示两个不同的PDF文件),我该如何确定只显示我通过按钮选择的那个?

2 个答案:

答案 0 :(得分:0)

您需要将一些信息传递给UIViewController UIWebViews,并说明按下了哪个按钮。然后,根据该信息,确定要显示的UIWebViews中的哪一个。

当您使用故事板时,我建议您查看prepareForSegue。它允许您使用以下内容在目标视图控制器上设置属性。您应该将其添加到包含按钮的UIViewController

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"buttonOne"]) {
        ExampleViewController *destViewController = segue.destinationViewController;
        destViewController.buttonClicked = @"One";
    } else if ([segue.identifier isEqualToString:@"buttonTwo"]) {
        ExampleViewController *destViewController = segue.destinationViewController;
        destViewController.buttonClicked = @"Two";
    }
}

然后,您可以使用目标视图控制器中的buttonClicked属性来决定应显示哪个属性。如果您有两个单独的UIWebViews,则可以选择使用webViewOne.hidden = YES;隐藏其中一个,并使用webViewTwo.hidden = NO;显示另一个。

但是,只有一个UIWebView可能更简洁。然后,您可以使用prepareForSeque传递您希望显示的PDF的URL,而不是仅仅发送单击按钮的名称。

答案 1 :(得分:0)

假设您webView位于名为SecondViewController的视图控制器中,并且您的按钮位于名为FirstViewController的视图控制器中

1)在SecondViewController.h

中创建一个对象
@interface SecondViewController : UIViewController

@property (nonatomic, strong) NSString *whichButtonClicked;

@end

2)在SecondViewController

中导入FirstViewController
#import "SecondViewController.h"

3)在FirstViewController.m中按下IBAction方法。使用此代码

 - (IBAction) firstButtonClicked
{
SecondViewController *secondViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"secondView"];
secondViewController. whichButtonClicked = @"first"
[self.navigationController pushViewController:secondViewController animated:YES];
}

 - (IBAction) secondButtonClicked
{
SecondViewController *secondViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"secondView"];
secondViewController. whichButtonClicked = @"second"
[self.navigationController pushViewController:secondViewController animated:YES];
}

PS别忘了。在你Storyboard。将SecondViewController的Storyboard ID设置为secondView

4)在SecondViewController.m中使用此代码检查哪个按钮

if ([self.whichButtonClicked isEqualToString:@"first"])
{
///display first web view here
}
else
{
//display second web view here
}

希望这有帮助