我有2个按钮,每个按钮都设有一个segue到一个带有Web视图的视图控制器。我尝试根据启动segue的按钮在Web视图中加载URL。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString: @"toWeb"]){
NSString *abc = @"http://www.abc.com/";
NSURL *url = [NSURL URLWithString:kmb];
NetView *netview =[segue destinationViewController];
[netview.internet loadRequest:[NSURLRequest requestWithURL:url]];
}else if ([segue.identifier isEqualToString: @"toFacebook"]){
NSString *fb = @"http://www.facebook.com/ABC?ref=hl";
NSURL *url2 = [NSURL URLWithString:fb];
NetView *netview =[segue destinationViewController];
[netview.internet loadRequest:[NSURLRequest requestWithURL:url2]];
}
}
这不起作用,但我没有在新屏幕上看到任何错误。我不确定问题是什么。谁能帮助我指出正确的方向?谢谢。
答案 0 :(得分:1)
问题是目前尚未加载目标控制器上的webview。只需在目标控制器上设置一个属性来保存您的网址,然后在其viewDidLoad
方法上将消息发送到网页视图以加载请求。像这样:
<强> NetView.h 强>
...
@property (nonatomic, copy) NSString *url;
<强> NetView.m 强>
...
@synthesize url;
您的代码段
if ([segue.identifier isEqualToString: @"toWeb"]){
NetView *netview = [segue destinationViewController];
netview.url = @"http://www.abc.com/";
}
...
<强> NetView.m 强>
- (void)viewDidLoad
{
NSURL *urlToLoad = [NSURL URLWithString:self.url];
[self.internet loadRequest:[NSURLRequest requestWithURL:urlToLoad]];
}