2

ViewController.m

//
//  ViewController.m
//  WebViewDemo
//
//  Created by Vu Van Tiep on 1/15/13.
//  Copyright (c) 2013 Vu Van Tiep. All rights reserved.
//

#import "ViewController.h"
#import "WebViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([[segue identifier] isEqualToString:@"GoogleSegue"]){
        WebViewController *desView = (WebViewController*) [segue destinationViewController];
        UIWebView *webView = desView.webView;
        if([webView respondsToSelector:@selector(loadRequest:)] || webView != nil){
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [alert show];
        }
        //webView is nil

    }
}

@end

WebViewController.m

//
//  WebViewController.m
//  WebViewDemo
//
//  Created by Vu Van Tiep on 1/15/13.
//  Copyright (c) 2013 Vu Van Tiep. All rights reserved.
//

#import "WebViewController.h"

@interface WebViewController ()

@end

@implementation WebViewController
@synthesize webView;

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.webView.scalesPageToFit = YES;
}

@end

WebViewController.h

@interface WebViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIWebView *webView;

@end

[segue destinationViewController] を使用しているときに WebViewControlller オブジェクトを取得しましたが、そのオブジェクトの webView プロパティにアクセスしているときは nil です

誰かが私に説明できますか?:(

ありがとう!

4

1 に答える 1

1

WebViewControllerのビューはまだ初期化されていません。初期化するように指示する必要があります。行の後にそれを行う

WebViewController *desView = (WebViewController*) [segue destinationViewController]; }

行を追加することによって

[desView view];

これは、カスタムセグエの[destinationViewControllerの使用]ボタンと同じ問題です。これは非常に一般的な問題であるに違いありませんが、これに関する情報を見つけるのは難しいと思いました。

于 2013-03-11T11:18:26.690 に答える