後,我已經開發了方法viewDidLoad中的web視圖中的ViewController崩潰設定的WebView委託
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
id <UIWebViewDelegate> delegate =[[MyDelegate alloc] init];
webView.delegate = delegate;
NSError *error;
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString *htmlContent = [[NSString alloc] initWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:&error];
[webView loadHTMLString:htmlContent baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
[self.view addSubview:webView];
我設置委託階級MyDelegate的實例。
在MyDelegate類:
#import <UIKit/UIKit.h>
@interface MyDelegate : NSObject <UIWebViewDelegate>
@end
#import "MyDelegate.h"
@implementation MyDelegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
return YES;
}
@end
但App我崩潰期間啓動loasding。 如果我沒有加載html內容,但會發生url(例如'google.com')崩潰。
當我評論這個'webView.delegate = delegate;'崩潰不會發生。
我知道我可以在ViewController.h使用:
@interface ViewController : UIViewController<UIWebViewDelegate>
,這在viewDidLoad中:
webView.delegate = self;
但我需要使用其他類爲代表(不視圖控制器),但網頁視圖必須位於ViewController中。
我該如何做到這一點? 幫幫我!
其他類爲代表,你可以使用協議。 –
感謝您的評論,但你是什麼意思?我使用協議UIWebViewDelegate。我需要使用其他協議嗎? – Katya
什麼是崩潰消息? –