0

Webビューを備えたビューコントローラにそれぞれセグエを設定した2つのボタンがあります。どのボタンがセグエを開始したかに基づいて、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 に答える