如何调用我的自定义 uiwebview class 的 webViewDidFinishLoad?
How to call webViewDidFinishLoad of my custom uiwebview class?
我在下面定制UIWebView
class
TestLib
来自 UIWebView
.
我想调用 webViewDidFinishLoad
我的自定义 UIWebView
class。
[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
}
如果您尝试以编程方式创建 UIWebView,则不应调用默认初始化程序(改用 initWithFrame)。
您需要将加载请求移动到视图控制器的 viewDidLoad 方法:
- (void)viewDidLoad {
[super viewDidLoad];
[myWebView setDelegate:self];
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSURLRequest *request =[NSURLRequest requestWithURL:url];
[myWebView loadRequest:request];
}
- 添加分号合成属性:
@synthesize myWebView;
- 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 中的自定义 class 从 UIWebView 更改为 TestLib。
我在下面定制UIWebView
class
TestLib
来自 UIWebView
.
我想调用 webViewDidFinishLoad
我的自定义 UIWebView
class。
[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
}
如果您尝试以编程方式创建 UIWebView,则不应调用默认初始化程序(改用 initWithFrame)。
您需要将加载请求移动到视图控制器的 viewDidLoad 方法:
- (void)viewDidLoad {
[super viewDidLoad];
[myWebView setDelegate:self];
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSURLRequest *request =[NSURLRequest requestWithURL:url];
[myWebView loadRequest:request];
}
- 添加分号合成属性:
@synthesize myWebView;
- 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 中的自定义 class 从 UIWebView 更改为 TestLib。