Aktivitätsanzeige Anzeige nicht auf, ob der UIWebView Laden ist oder nicht
-
21-09-2019 - |
Frage
Sorry, wenn dies ist ein einfaches. Grundsätzlich ist hier mein Code:
MainViewController.h :
#import "FlipsideViewController.h"
@interface MainViewController : UIViewController <UIWebViewDelegate, FlipsideViewControllerDelegate> {
IBOutlet UIWebView *webView;
IBOutlet UIActivityIndicatorView *spinner;
}
- (IBAction)showInfo;
@property(nonatomic,retain) UIWebView *webView;
@property(nonatomic,retain) UIActivityIndicatorView *spinner;
@end
MainViewController.m :
#import "MainViewController.h"
#import "MainView.h"
@implementation MainViewController
@synthesize webView;
@synthesize spinner;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad {
NSURL *siteURL;
NSString *siteURLString;
siteURLString=[[NSString alloc] initWithString:@"http://www.site.com"];
siteURL=[[NSURL alloc] initWithString:siteURLString];
[webView loadRequest:[NSURLRequest requestWithURL:siteURL]];
[siteURL release];
[siteURLString release];
[super viewDidLoad];
}
- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller {
[self dismissModalViewControllerAnimated:YES];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[spinner stopAnimating];
spinner.hidden=FALSE;
NSLog(@"viewDidFinishLoad went through nicely");
}
- (void)webViewDidStartLoad:(UIWebView *)webView {
[spinner startAnimating];
spinner.hidden=FALSE;
NSLog(@"viewDidStartLoad seems to be working");
}
- (IBAction)showInfo {
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
controller.delegate = self;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
[controller release];
}
- (void)dealloc {
[spinner release];
[webView release];
[super dealloc];
}
@end
Leider ist nichts jemals zu meinem Protokoll geschrieben, und aus irgendeinem Grunde die UIActivityIndicator
scheint nie zu erscheinen. Was läuft da falsch hier?
Danke Leute
Jack
Lösung
Sie müssen die UIWebView Delegierten setzen. Sie das Protokoll implementieren, aber Sie nie die UIWebView sagen, dass diese Klasse die Delegierten ist so diese Methoden werden nie genannt werden.
webView.delegate = self;
Auch können Sie diese Frage / Antwort prüfen wollen , wie die UIWebViewDelegate Methoden zu implementieren.
Andere Tipps
- webViewDidFinishLoad:
wird auf der Web-Ansicht des Delegierten gesendet, wenn es Inhalte aus der URL in Frage erfolgreich geladen wurde. Haben bestätigt, dass die URL durch Prüfen sie in Safari gültig ist? Haben Sie doppelt Ihre Stellvertretung Verbindung überprüft?