2013-01-17 3 views
0

나는 내 loadingView를 빌드 했으므로 이제는 좋아 보인다. 그러나 나는이 loadingView를 보여주고 제거 할 적절한 순간을 알 수 없다. UIButton이있는 초기 RootViewController에서 NavigationController를 사용합니다. UIButton을 누르면 새로운 UIView가 나타납니다. 그러나 이것은 서버에서 일부 파일을로드하는 데 몇 초가 걸립니다. 그래서이 시간 동안 내 loadingView를 보여주고 싶습니다. 나는 prepareForSegue()를 사용 - 방법을 거기에 내가 내가loadingScreen을 올바르게 구현하는 방법

[backgroundLoadingView removeFromSuperview]; 

효과는 코드의 라인을 넣어이

[self.navigationController.view addSubview:backgroundLoadingView]; 

같은과 viewDidDisapperar 내로드보기를 추가하는 코드를 넣어 때 UIButton 아무 것도 몇 초 동안 (파일을로드하기 때문에) 발생하고 loadingView가 팝업되지 않지만 새로운 ViewController가 나타나면 loadingView가 잠시 나타나서 사라집니다. 오른쪽 순간에 disapperas 나는 그것이 맞다라고 생각한다. 그러나 그것은 바른 monent에 오지 않는다. 이 상황을 어떻게 처리 할 수 ​​있습니까?

편집 : 여성용 내입니다 prepareForSegue-방법

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 

{

if([segue.identifier isEqualToString:@"showPointsOnMap"]) 
{ 
    NSLog(@"Here is prepareForsegue()"); 
    [self.navigationController.view addSubview:backgroundLoadingView]; 
    [self prepareJSONData:[self getJSONData]]; 
    [segue.destinationViewController setPointArray:thePointArray]; 
} 

}

+0

네트워크 요청으로 기본 스레드를 차단하고 있습니까? –

답변

0

당신이 창으로하지 추가해야합니다 서버와 통신하는 동안로드보기를 표시하려면 컨트롤러를 보는 중 ..

UIWindow *window = [UIApplication sharedApplication].keyWindow; 

window addSubView:backgroundLoadingView]; 

[window bringSubviewToFront:backgroundLoadingView]; 
+0

나는이 솔루션을 윈도우에서 시도했다.이 코드를 prepareForSegue-Method에 넣었고 위에서 설명한 것과 같은 효과가있다. 또한 NSLog() - Statement를 prepareForSegue-Method의 첫 번째 줄로 지정합니다.이 단추는 내 단추를 누를 때 imidiently 실행되지만 secondViewController가 나타날 때만 하위보기를 추가하는 두 번째 줄이 실행됩니다. – user1895268

+0

viewDidloadMethod에 내 Subview를 추가하여'[self.navigationController.view]'가 내 뷰를 추가하는 올바른 뷰인지 확인했습니다. 실제로는 내 서브 뷰를 추가합니다. 그것은 기대했던 것만 큼 과장된 것처럼 보이지만 prepareForSegue-Method에는 나타나지 않습니다. 거기에 뭐가 잘못 되었나요? – user1895268

관련 문제