2010-05-06 4 views
1

물건을 할 때 회 전자를 보여주는 내 응용 프로그램에«loader-view»를 추가하려고합니다.iPhone에서 로딩보기가 한 번만 작동

처음에는 문제가 없지만 두 번째로는 작동하지 않습니다.

내가 스피너 (spinnerViewController) 내가 IB (spinner.xib)에서 만든 펜촉 파일에 대한의 ViewController 있습니다

여기에 내가 할거야.

I가있는 viewDidLoad 이벤트에 펜끝을로드 :

spinnerView = [[spinnerViewController alloc] initWithNibName:@"spinner" bundle:nil]; 

[spinnerView가 유지]; (spinnerViewController * spinnerView)

spinnerView가 .H-파일에 선언

다음, 나는 회보기 보여 잘 작동

[self.view addSubview:spinnerView.view]; 
[self.view bringSubviewToFront:spinnerView.view]; 

을 ...

그리고 이제 문제가 시작됩니다. 내가 무엇을해도 스피너보기를 다시 표시 할 수는 없습니다.

나는 그것을 숨기기 위해 작동하지만 (self.view sendSubViewToBack : spinnerView.view) 그것을 다시 앞에 가져 오려고 할 때 (self.view bringSubViewToFront : spinnerView.view) 작동하지 않습니다. .

[편집 : ([self.view removeFromSuperview] 및 [self.view addSubview ... 다시 보여주기 위해 spinnerViewController 이내)

는 또한 스피너 뷰를 제거하고 성공하지 다시 추가 시도 ]

전체 설정을 약간 변경하고 IB에서 회 전자보기 하위보기를 만들었습니다. 다시 숨기고 있지만 다시 표시하는 것은 실패합니다. 알아 낸 내용 : bringSubViewToFront 명령을 실행 한 후 일부 데이터를 가져 오기 위해 일부 웹 서비스를 호출합니다. 다음 코드를 주석 처리하고 spinnerView 만 표시하면 작동합니다. 이제는 회 전자 뷰가 언제 나타나는지 확인한 다음 코드를 계속 수행하는 방법을 알아 내려고 노력하고 있습니다. 그러나 당연히이 방법은 (아직) 작동하지 않습니다. :)

잘못된 아이디어 ??? ;)

답변

1

문제가 해결되었습니다. 웹 물건 블록으로, 따라서보기가 표시되지 않은 현재 하나를 http://urenjoy.blogspot.com/2009/05/uiactivityindicatorview.html

분명히, 업데이트가 별도의 스레드에서 발생한다 :

이 페이지

대답했다.

[NSThread detachNewThreadSelector:@selector(doWork) toTarget:self withObject:nil]; 
- (void) doWork { 

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

.....Time Consuming Code here ..... 

[pool release]; 

} 
0

내가 정확히 귀하의 질문에,하지만 화면에 스피너를 보여주기 위해 거대한 과잉을의 ViewController 클래스입니다 만드는 일반적으로 수 ... 당신이 무엇을 뒤에 논리를 발견하기 위해 시도 할 수 있습니다 : 당신은 viewcontroller를 만들지 만 그것을 사용하지 않는다면 당신은 뷰를 사용합니다.- 당신 말이 맞아,이

... in your class interface... 

UIActivityIndicator* activity; 

... when the activity needs to happen ... 

activity = [[UIActivityIndicator alloc] initWithActivityIndicatorStyle: .... 
[activity startAnimating]; 
[self.view addSubview:activity]; 
[activity release] 

... when the activity is finished 

[activity removeFromSuperview]; //this will also decrease the retain count 
+0

안녕 ICAN 예를 : 짧은 그래서

나는 왜 당신이 뭔가를하려고하지 않는 당신 만의 UIView합니다 (UIViewController에의보기 속성)가 필요합니다 생각 과잉이었다. 그리고 나는 실제로 그 질문을 한 후에 그것을 깨달았다. 그래도 나는이 방법을 꽤 편리하게 찾았으나 IB에서 스피너를 만든다. 하지만 지금은 ViewController 사라지고 그냥 펜촉을로드하고 그것을 표시합니다. 어쨌든 힌트를 가져 주셔서 고맙습니다. - 여전히 Objective-C 및 SDK에 대한 내 머리를 얻으려고합니다. 그래서 모든 것이 도움이됩니다 :) –