iPhone - 不调用webViewDidFinishLoad

时间:2012-04-19 04:25:09

标签: iphone ios xcode

我有一个包含UIWebView的IB

#import <UIKit/UIKit.h>

@interface PostFunHorosViewController : UIViewController<UIWebViewDelegate>{

}

@property (nonatomic, retain) IBOutlet UIWebView *description;
@end

在ViewController上

- (void)viewDidLoad
{
    [super viewDidLoad];

    description.delegate = self;
    [self.description loadHTMLString:[NSString stringWithFormat:@"<div align='justify'>%@<div>",[@"This is test string" stringByReplacingOccurrencesOfString: @"\n" withString:@"<br/>"]] baseURL:nil];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSLog(@"webViewDidFinishLoad");
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
    NSLog(@"webViewDidStartLoad");
}

这就是我在屏幕上添加IB的方式:

- (void)viewDidLoad
{   
    PostFunHorosViewController *postVC = [[PostFunHorosViewController alloc] initWithNibName:@"PostFunHorosViewController" bundle:nil];
    [scroller addSubview:postVC.view];                   
    [postVC release];                
    [super viewDidLoad];
}

我的问题是它从不调用webViewDidFinishLoad和webViewDidStartLoad。
此外,它也陷入了

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([IHOROSAppDelegate class]));
    }
}

毫无例外。

我错过了什么。请帮我。提前谢谢。

2 个答案:

答案 0 :(得分:1)

使用 -

self.description.delegate = self;  (in viewDidLoad)

你早些时候在做什么 -

description.delegate = self;

虽然您尚未定义实例变量,但您已定义了属性。

答案 1 :(得分:0)

而是以编程方式获取代理尝试使用出口,因为您有XIB文件。 我建议打印这样的东西,

description.delegate=self;
NSLog(@"Self %@",self);

因此,您可以清楚地了解设置代理的位置。