2012-08-30 68 views
0

我有2个按钮,每个都有一个带网络视图的视图控制器。我试图根据哪个按钮启动segue,在web视图中加载一个url。segue中传递网址信息

- (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]]; 
    } 
    } 

这是行不通的,但我没有得到任何错误只是在新屏幕上的平淡的看法。我不确定问题是什么。任何人都可以帮助我指出正确的方向吗?谢谢。

回答

1

问题是目标控制器上的webview尚未加载。只需在目标控制器上设置一个属性来保存您的url,然后在其方法上发送消息到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]]; 
} 
+0

非常感谢。现在它工作正常。谢谢你这么快回答,我真的很感激。 – kmb