2010-03-19 50 views
3

对不起,如果这是一个容易的。基本上,这里是我的代码:根据UIWebView是否加载显示活动指示器

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。这里有什么问题?

感谢乡亲

杰克

回答

4

您需要设置UIWebView的委托。你实现协议,但你永远不会告诉UIWebView这个类是委托,所以这些方法永远不会被调用。

webView.delegate = self; 

此外,你可能想看看这个question/answer如何实现UIWebViewDelegate方法。

+1

现在我们正在旋转'!谢谢你的帮助! – Jack 2010-03-19 21:17:10

1

- webViewDidFinishLoad:在成功从相关URL中加载内容时发送到Web视图委托。您是否通过在Safari中检查该URL来确认该URL是否有效?你有没有检查你的委托连接?