0

我有 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]];
    }
     }

这不起作用,但我没有收到任何错误,只是新屏幕上的一个平淡的视图。我不确定问题是什么。谁能帮我指出正确的方向?谢谢你。

4

1 回答 1

1

问题是此时目标控制器上的 webview 尚未加载。只需在目标控制器上设置一个属性来保存您的 url,然后在其viewDidLoad方法上将消息发送到 webview 以加载请求。像这样的东西:

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]];
}
于 2012-08-30T19:16:22.110 回答