2010-02-18 3 views
4

나는 숨겨진 속성을 토글하여 두보기간에 전환합니다. 보기가 숨김 및/또는 표시되는 시점을 어떻게 알 수 있습니까?UIView가 완전히 숨겨지면 어떻게 알 수 있습니까?

viewDidLoad, viewDidUnload, viewWillAppear, viewWillDisappear, viewDidDisappear, becomeFirstResponder 및 resignFirstResponder에 중단 점을 설정하려고 시도했습니다. 아무것도. 숨겨진 = YES/NO를 설정하면 그 중 아무 것도 호출되지 않습니다.

if (self.aController) 
    self.aController.view.hidden = YES; 
if (self.bController) 
    self.bController.view.hidden = NO; 
[self.bController viewWillAppear:YES]; 

UITabBarItem에서 하위보기의 하위보기이기 때문에 viewWillAppear을 직접 호출합니다. Apple docs는 설정이 부 자연스러운 것이라고 말했고 일부 자동 알림은 수동으로 수행해야합니다 (). 이것은 숨겨진 상태와 관련된 것으로 생각되는 becomeFirstResponder 및 resignFirstResponder를 얻지 않는 것과 동일한 문제입니까?

답변

3

추측 애플 워드 프로세서가 맞았거나, 적어도 문제를 해결하기 위해 제공되었습니다. 나는 파단에 자동 알림을받지 않는,하지만 난, 난 그냥 "앞으로"알림 혼자 MAINVIEW에서 그들을받을 수 있나요 때문에 :

- (void) viewWillAppear:(BOOL)animated 
{ 
[super viewWillAppear:animated]; 

// called at tab switch 
if (self.aController) 
    [self.aController viewWillAppear:YES]; 
if (self.bController) 
    [self.bController viewWillAppear:YES]; 
} 

- (void) viewWillDisappear:(BOOL)animated 
{ 
[super viewWillDisappear:animated]; 

// called at tab switch 
if (self.aController) 
    [self.aController viewWillDisappear:YES]; 
if (self.bController) 
    [self.bController viewWillDisappear:YES]; 
} 

확실하지,이 "올바른"방법 인 경우 만 공장. 다음 문제는 제발!

3

하나의 옵션은 Key-Value Observation을 사용하여 두보기의 hidden 속성을 관찰하는 것입니다. 변경 사항이 트리거되면 변경 사항에 대한 메시지가 표시됩니다.

+0

고맙습니다. 고맙습니다. – JOM

+0

그냥 업데이트하는 것이 좋습니다 : 한 가지 탭에서 다른 탭으로 전환해도 숨겨진 속성이 변경되지 않으므로 사용할 수 없습니다. 직접 변경할 수도 있지만 viewWillAppear/viewWillDisappear 호출은 더 쉬운 선택이었습니다. 어쨌든 고맙습니다. Key-Value Observation을 회상해야합니다! – JOM