2013-05-17 3 views
0

응용 프로그램 시작시 "화면로드 중"(이미지 만)을 표시하고 응용 프로그램이 웹에서 필요한 모든 데이터를 가져 오면 첫 번째 viewcontroller가 표시됩니다. 나는 "LoadingScreen.png"로 내 자신의 검은 화면 "Default.png"을 설정하여 그 일을 succeded하고웹 요청이 완료 될 때까지 iPhone로드 화면

(Default.png로 다시 이름 물론)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
// Override point for customization after application launch. 
self.viewController = [[THWViewController alloc] initWithNibName:@"THWViewController" bundle:nil]; 
[self performSelector:@selector(start) withObject:nil afterDelay:5.0]; 
[self.window makeKeyAndVisible]; 
return YES; 
} 

- (void)start 
{ 
self.window.rootViewController = self.viewController; 
} 

나는 경우 API를 로딩에 그 임의 지연을 바꿀 것 끝났지 만 이것을 구현하는 좋은 방법인가? 왜냐하면 나는 rootviewcontroller라는 메시지를 받는다.

답변

0

차단을 사용하여 임의의 지연을 제거 할 수 있습니다. 또한 루트가 아닌 것으로 시작하지 않고 (경고를 제거하지 말고) 첫 번째보기에서 호출하는 것을 고려해 볼 수 있습니다 (경고를 제거하십시오).

//show your loading screen over your first view 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    // Get all the needed data 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     // do what you need to do with data and in first view 
     //hide the loading screen 
    }); 
});