Ich habe die webView in Methode viewDidLoad in ViewcontrollerAbsturz nach WebView Delegierter Einstellung
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];
ich die Delegierten auf Instanz der Klasse MyDelegate entwickelt.
In MyDelegate Klasse:
#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
Aber mein Absturz App während der loasding starten. Wenn ich nicht HTML-Inhalt laden, aber URL ("google.com" zum Beispiel) Absturz passiert.
Wenn ich diese 'webView.delegate = Delegate kommentieren' Absturz passiert nicht.
Ich weiß, dass ich dies in ViewController.h verwenden:
@interface ViewController : UIViewController<UIWebViewDelegate>
und dies in viewDidLoad:
webView.delegate = self;
aber ich brauche andere Klasse als Delegierter verwenden (nicht Viewcontroller), aber webview muss sich in ViewController befinden.
Wie kann ich das machen? Hilf mir!
für andere Klasse als Delegierten können Sie Protokoll verwenden. –
Danke für den Kommentar, aber was meinst du? Ich benutze Protokoll UIWebViewDelegate. Brauche ich ein anderes Protokoll? – Katya
Was ist die Absturzmeldung? –