gpt4 book ai didi

ios - 如何调用我的自定义 uiwebview 类的 webViewDidFinishLoad?

转载 作者:行者123 更新时间:2023-11-29 01:59:45 25 4
gpt4 key购买 nike

我在下面创建了一个自定义的 UIWebView 类。

TestLib 派生自 UIWebView

我想调用我的自定义 UIWebView 类的 webViewDidFinishLoad

[TestLib.h]
@interface TestLib : UIWebView
{
}
@end

[TestLib.m]


[ViewController.h]
#import "TestLib.h"

@interface ViewController : UIViewController<UIWebViewDelegate>

@property (strong, nonatomic)TestLib *myWebView;


[ViewContoroller.m]

@implementation ViewController
@synthesize myWebView

- (void) viewDidLoad {
myWebView = [[TestLib alloc] init];
[myWebView setDelegate: self];

...
}

- (void)webViewDidFinishLoad: (UIWebView *)webView {
// not call
}

最佳答案

  1. 如果您尝试以编程方式创建 UIWebView,则不应调用默认初始化程序(改用 initWithFrame)。

  2. 您需要将加载请求移至 View Controller 的 viewDidLoad 方法:

- (void)viewDidLoad {
[super viewDidLoad];

[myWebView setDelegate:self];
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSURLRequest *request =[NSURLRequest requestWithURL:url];
[myWebView loadRequest:request];
}
  1. 添加分号来综合属性:
@synthesize myWebView;
  1. webViewDidFinishLoad 方法应如下所示:
- (void)webViewDidFinishLoad:(UIWebView *)webView {

// TestLib *customWebView = (TestLib *)webView; - type cast if needed
NSLog(@"Webpage loaded OK");

}

如果您通过 Interface Builder 创建 UIWebView,您将希望完全省略 init 方法,只需将 myWebView 属性连接为 IBOutlet:

@property (nonatomic, retain) IBOutlet TestLib *myWebView;

此外,您还需要将 Interface Builder 中的自定义类从 UIWebView 更改为 TestLib。

关于ios - 如何调用我的自定义 uiwebview 类的 webViewDidFinishLoad?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30496200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com