假设我有一个带有两个按钮的UIViewController
,两个按钮(推送)到另一个UIViewController
,其中有两个UIWebViews
(显示两个不同的PDF文件),我该如何确定只显示我通过按钮选择的那个?
答案 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
}
希望这有帮助