مؤشر النشاط لا يتم عرضه بناءً على ما إذا كان uiwebview يتم تحميله أم لا

StackOverflow https://stackoverflow.com/questions/2480550

سؤال

آسف إذا كان هذا سهلاً. في الأساس ، ها هو الكود الخاص بي:

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

لسوء الحظ ، لا يوجد شيء مكتوب على سجلي ، ولسبب ما UIActivityIndicator لا تظهر أبدًا. ماذا يحدث هنا؟

شكرا الناس

جاك

هل كانت مفيدة؟

المحلول

تحتاج إلى تعيين مندوب UIWEBView. تقوم بتنفيذ البروتوكول ولكنك لا تخبر Uiwebview أبدًا أن هذه الفئة هي المندوب حتى لا يتم استدعاء هذه الطرق أبدًا.

webView.delegate = self;

أيضًا ، قد ترغب في التحقق من هذا جواب السؤال حول كيفية تنفيذ أساليب UIWebViewDelegate.

نصائح أخرى

- webViewDidFinishLoad: يتم إرساله إلى مندوب عرض الويب عندما يتم تحميله بنجاح محتوى من عنوان URL المعني. هل أكدت أن عنوان URL صالح عن طريق التحقق منه في Safari؟ هل قمت بفحص اتصال المندوب الخاص بك؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top