مؤشر النشاط لا يتم عرضه بناءً على ما إذا كان uiwebview يتم تحميله أم لا
-
21-09-2019 - |
سؤال
آسف إذا كان هذا سهلاً. في الأساس ، ها هو الكود الخاص بي:
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؟ هل قمت بفحص اتصال المندوب الخاص بك؟
لا تنتمي إلى StackOverflow