【问题标题】:pass url information in segue在 segue 中传递 url 信息
【发布时间】:2012-08-30 19:09:46
【问题描述】:

我设置了 2 个按钮,每个按钮都带有一个带有 Web 视图的视图控制器的 segue。我正在尝试根据哪个按钮启动 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]];
    }
     }

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

【问题讨论】:

    标签: xcode ios5 segue


    【解决方案1】:

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

    NetView.h

    ...
    @property (nonatomic, copy) NSString *url;
    

    NetView.m

    ...
    @synthesize url;
    

    您的代码 sn-p:

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

    【讨论】:

    • 非常感谢。它现在工作正常。并感谢您如此迅速地回答,我真的很感激。
    猜你喜欢
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多