2010-03-18 4 views
0

인터넷을 사용하여 페이지를로드하고 응용 프로그램에서 URL을로드 할 때마다 화면이 검은 색이되는 긴 - (void)viewDidLoad { } 함수가 있습니다. 주소가로드 중임을 보여주기 위해 UIActivityIndicator 설정이 있지만 응용 프로그램이 응답하지 않는 것처럼 보이지 않게하고 네트워크 활동 표시기를 표시하지 않으려는 경우 [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 화면이 표시됩니다. 여전히 상단 모서리에있는 로더와 함께 검은 색이됩니다. 내 코드는 다음과 같습니다.iPhone SDK - (void) viewDidLoad {} - 진행 상황 표시

- (void)viewDidLoad { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    email.text = [defaults objectForKey:@"mom_email"]; 
    pass.text = [defaults objectForKey:@"mom_pass"]; 
    if (email.text != nil && pass.text != nil) { 
     [self login:loginBtn]; 
    } 
} 
- (IBAction)login:(id)sender { 
    [email resignFirstResponder]; 
    [pass resignFirstResponder]; 
    [loader startAnimating]; // Does nothing though 
    NSString *em = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)email.text,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8); 
    NSString *ps = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)pass.text,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8); 
    NSURL *url = [[NSURL alloc] initWithScheme:@"http" host:@"localhost" path:[[NSString alloc] initWithFormat:@"/app/login.php?email=%@&pass=%@", em, ps]]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
    NSString *loginResult = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 
    [loader stopAnimating]; 
    NSRange range = [loginResult rangeOfString:@"1"]; 
    if (range.location != NSNotFound) { 
     [self dismissModalViewControllerAnimated:YES]; // Doesn't do anything if function called from viewDidLoad 
    } 
} 

답변

0

무언가가로드되었다는 텍스트를 추가 할 수 있습니다. 또는 진행 표시기 대신 진행률 표시 줄을 제공하기 위해 NSURLConnection 대리자 메서드를 사용할 수도 있습니다.

1

viewDidLoad에서 차단하는 대신로드하는 새 스레드를 시작하십시오. 그런 다음 물건들이 로딩되었다는 것을 나타내는 텍스트가있는보기를 초기화하고 사용할 수있게되면 필요한 내용을 업데이트하십시오.

관련 문제