UIWebview在类中设置委托方法

时间:2014-11-07 08:02:22

标签: ios objective-c uiwebview uiwebviewdelegate

如何在类中设置UIWebView的委托方法?

当我这样做时,app apph。


@interface MineWebViewHandle : NSObject<UIWebViewDelegate>

@end

//。米

@implementation MineWebViewHandle

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *urlString = [[request URL] absoluteString];

    return YES;
}

- (void)webViewDidStartLoad:(UIWebView *)webView
{
    NSLog(@"did start load");
}

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

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    NSLog(@"webview error:%@",[error localizedDescription]);
}

我用它:

    self.m_pWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
    MineWebViewHandle *handle = [[MineWebViewHandle alloc]init];
    self.m_pWebView.delegate = handle;
    self.m_pWebView.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:self.m_pWebView];

我该如何正确使用它?

2 个答案:

答案 0 :(得分:0)

您的委托看起来像是在viewDidLoad中创建,并且在此版本的最后发布(放到零)。

您需要创建一个名为:MineWebViewHandle * handle。

的属性 在viewController.h中添加:

 @property (nonatomic,strong)MineWebViewHandle *handle;

并更改代码:

self.handle = [[MineWebViewHandle alloc]init];
self.m_pWebView.delegate = self. handle;

这是个好主意,你的webView将有尺寸,改变这个:

self.m_pWebView = [[UIWebView alloc] initWithFrame:self.view.frame];

答案 1 :(得分:-1)

WebviewUIView,不是控制者。

请删除NSObject并添加UIview

@interface MineWebViewHandle : UIView
@end