2013-04-04 4 views
0

Я пытаюсь загрузить UIWebView только после загрузки страницы. Пока страница не будет готова, я хочу, чтобы экран всплывания отображался. Я попытался выполнить первый ответ на этой странице (XCode Prevent UIWebView flashing white screen after Launch Image), но он, похоже, не работает ... загружается экран заставки и UIWebView никогда не загружается.Как показать UIWebView после запуска приложения только после загрузки страницы?

Любые советы?

ViewController.h

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController{ 

IBOutlet UIWebView *webView; 

} 

@property (nonatomic, retain) IBOutlet UIWebView *webview; 
@property(nonatomic, strong) UIImageView *loadingImageView; 
@end 

ViewController.m

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController; 

@synthesize webview; 
@synthesize loadingImageView; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 


    //**************** Set website URL for UIWebView 
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://http://warm-chamber-7399.herokuapp.com/"] cachePolicy:NSURLCacheStorageAllowed timeoutInterval:20.0]]; 


    //**************** Add Static loading image to prevent white "flash" ****************/ 
    UIImage *loadingImage = [UIImage imageNamed:@"Default.png"]; 
    loadingImageView = [[UIImageView alloc] initWithImage:loadingImage]; 
    loadingImageView.animationImages = [NSArray arrayWithObjects: 
             [UIImage imageNamed:@"Default.png"], 
             nil]; 
    [self.view addSubview:loadingImageView]; 

} 

- (void)webViewDidFinishLoad:(UIWebView *)webView { 

    // Remove loading image from view 
    [loadingImageView removeFromSuperview]; 

} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

ответ

1

Установили ли вы делегат webView? Не устанавливая это, ваш метод webViewDidFinishLoad: никогда не будет срабатывать.

webView.delegate = self; 
+0

, где я устанавливаю это? – sharataka

+0

на вашем viewDidLoad непосредственно перед вызовом loadRequest: – Bartu

+0

он не работает, и я получаю предупреждение тоже (семантическая проблема). – sharataka

4

Попробуйте это,

@interface ViewController() <UIWebViewDelegate> 

{ 
    UIWebView * webView; 
    UIImageView * imageView; 
} 

@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    imageview = [[UIImageView alloc]init]; 
    [imageview setFrame:CGRectMake(0.0, 0.0, 320.0, 460.0)]; 
    [imageview setImage:[UIImage imageNamed:@"Red.png"]]; 
    [self.view addSubview:imageview]; 

    webView = [[UIWebView alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 460.0)]; 
    [webView setDelegate:self]; 
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com"]]]; 

    // Do any additional setup after loading the view, typically from a nib. 
} 

// UIWebView Delegate 

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [imageView removeFromSuperview]; 
    [self.view addSubview:webView]; 
} 

@end 
0

Почему бы вам напрямую добавить запуск изображение в .plist файл

Смежные вопросы