2011-10-25 2 views
1

사용자 지정 UIViewController를 올바르게 표시하는 UIPopoverViewController가 있습니다. 버튼을 클릭하면 액션이 실행되고 결과적으로 UIViewController 뷰의 뷰 계층 구조에 뷰를 추가합니다.UIPopoverViewController Subview 추가가 느림

문제는보기가 매우 느리고 몇 초가 걸리는 것입니다. 내 UIViewController의 코드로 평범한 것을하지 않습니다.

- (void)showAccountChooser { 
    self.twitterAccountPicker = [TwitterAccountPicker new]; 
    [self.view addSubview:self.twitterAccountPicker.view]; 
    self.twitterAccountPicker.view.frame = self.view.bounds; 

    self.twitterAccountPicker.view.transform = CGAffineTransformMakeScale(.05, .05); 

    [UIView animateWithDuration:0.5f animations:^{ 
     self.twitterAccountPicker.view.transform = CGAffineTransformMakeScale(1, 1); 
    } completion:^(BOOL finished) { 
     //[self.twitterAccountPicker viewDidAppear:YES]; 
    }]; 
} 

내가 추가하고있어 UIViewController에 사소한하고있는 viewDidLoad 또는 viewWill/DidAppear 무거운 처리를하지 않습니다. 중단 점을 설정하고 아무 것도하지 않음을 확인했습니다 불량.

다른 사람이보기를 추가 할 때이를 알 수 있습니까?

답변

1

이 디버깅을 시도하는 중단 점을 설정 한 후 백그라운드 스레드에서 발생하는 블록 호출에서 내 showAccountChooser 메서드가 호출되고 있다는 것을 깨달았습니다. 이 호출을 주 스레드로 이동하면 문제가 해결되었습니다.