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

War es hilfreich?

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?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top