我有一個應用程序,它有UITabBar 5視圖,每個附加到不同的UIWebView。每個網頁視圖的響應:UITabBar與UIWebView切換視圖問題
webViewDidStartLoad:(UIWebView *)webView
webViewDidFinishLoad:(UIWebView *)webView
這兩個是負責顯示加載屏幕(單獨的圖像爲每個標籤,切換可見或不可見)和活性的指標。
當頁面加載到WebView時,它一切正常。用戶點擊頁面上的鏈接,加載圖像與活動指示符一起顯示。當頁面被加載時,它們都會消失並呈現新的網站。
問題是當用戶點擊其中一個TabBar項目。應用程序攔截事件並在適當的視圖中啓動一個方法,該方法刷新頁面。
問題:點擊視圖立即切換到其他WebView後,但加載屏幕需要很長時間才能顯示(從我收集它只顯示頁面傳遞到homeView開始加載時),我不能圖爲什麼。顯示加載項是應用程序在調用方法後應該做的第一件事。
這裏是調用從的TabBar控制器的方法的代碼:
[hv performSelector:@selector(goToPage) withObject:nil afterDelay:0.0];
這裏是GotoPage記述方法:
- (void) goToPage
{
homeView.delegate = self;
self.showLoading;
NSURL *url = [NSURL URLWithString: [NSString stringWithFormat: @"%@/seed.php", appURL]];
NSString *body = [NSString stringWithFormat: @"uid=%@", uID];
NSData *data = [body dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: data];
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
[request release];
NSString *seedString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSArray *seedArray = [seedString componentsSeparatedByString:@":::"];
NSString *eventNumber = [[seedArray objectAtIndex:0] retain];
NSString *passedSid = [[seedArray objectAtIndex:1] retain];
if (!seedString) {
// can't connect
NSLog(@"Can't connect.");
}else {
// connected
NSLog(@"Events: %@", eventNumber);
if(![evtNo isEqualToString:eventNumber]){
evtNo = eventNumber;
if(![evtNo isEqualToString:@"0"]){
AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);
}
}
}
NSURL *urlView = [NSURL URLWithString: [NSString stringWithFormat: @"%@/index.php", appURL]];
NSString *bodyView = [NSString stringWithFormat: @"sid=%@", passedSid];
NSData *dataView = [bodyView dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *requestView = [[NSMutableURLRequest alloc]initWithURL:urlView];
[requestView setHTTPMethod: @"POST"];
[requestView setHTTPBody: dataView];
[homeView loadRequest: requestView];
if([evtNo isEqualToString:@"0"]){
// clearing badge
[[[[[self tabBarController] viewControllers] objectAtIndex: 0] tabBarItem] setBadgeValue: nil];
}else{
[[[[[self tabBarController] viewControllers] objectAtIndex: 0] tabBarItem] setBadgeValue: evtNo];
}
}
我的目標是要顯示加載圖像的時刻用戶點擊TabBar項目並保持可見,直到頁面停止加載。