2012-09-27 4 views
2

SDWebImagePrefetcher을 사용하여 내 plist에서 이미지 목록을 미리 가져옵니다.MBProgressHUD & SDWebImage - HUD가 표시되지 않습니다.

진행을 나타 내기 위해 MBProgressHUD HUD가 표시된 UIViewController를 할당하려고 시도하는 방법을 편집 중입니다.

문제는 HUD가 표시되지 않습니다. 게다가, SDWebImagePrefetcher는 NSObject이고 나는 사용자 정의 UIViewController와 HUD를 초기화해야 할 곳을 모른다. 왜냐하면 어떤 viewDidLoad이나 viewWillAppear 메소드도 없기 때문이다.

나는

MyCustomViewController *cv = [[MyCustomViewController alloc]init]; 
HUD = [[MBProgressHUD alloc]initInView:cv.view]; 

처럼 뭔가를 시도하고 작동하지 않았다.

또한 UIAlertView를 viewController의 subView로 추가하여 작동하는지 확인했지만 전혀 작동하지 않았습니다.

할당 된 컨트롤러에 HUD를 표시하기 위해 NSObject 클래스에서 UIViewController를 초기화하는 방법에 대한 조언은 매우 좋습니다.

+0

당신은'cv'가 nil이 아닌지 확인 했습니까 ?? 또한, 해당보기 컨트롤러를 만든 후에 어떻게 표시합니까? – jere

+0

그것은 nil이 아니며이 클래스는 여기에 설명 된 것을 수행해야하는 싱글 톤이므로 제시 할 필요가 없습니다 http://stackoverflow.com/questions/12439536/mbprogresshud-and-sdwebimageprefetcher (Stig Brautaset 마지막 코멘트) – Phillip

+0

stig의 의견은 당신이 여기에서 묻고있는 것과는 아무 관련이 없습니다 ... 그는 HUD의 진행 상황을 어떻게 업데이트해야하는지에 대해 이야기하고 있습니다. 당신은 당신이 당신의 뷰 컨트롤러에 무엇을 추가하는지 볼 수 없다고 말합니다 ... 당신이 정확히하고 싶은 것은 무엇입니까? – jere

답변

4

모든 클래스에서 MBProgressHUD을 표시하려는 경우 간단합니다. 그냥 응용 프로그램의 keyWindow에 추가하십시오. 이것은 귀하의 응용 프로그램을위한 매우 최상위 창이며 어느 곳에서나 쉽게 접근 할 수 있습니다.

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow]; 

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:keyWindow animated:YES]; 
hud.labelText = @"Loading"; 

그리고 당신이 MBProgressHUD을 숨길 때 당신은 앱의 메인 화면이 설정 될 때까지 keyWindow에 액세스하는 것을 기다릴

[hud hide:YES]; 

이 있는지 확인하십시오. 이는 출시 될 때 발생합니다. 프로그래밍 방식으로 설치하는 경우 [window makeKeyAndVisible]을 호출하여 AppDelegate에 있습니다.

+0

그게 전부였습니다! 고마워요! - 10 시간 만에 상금 – Phillip