2011-11-22 3 views
0

내가 내 viewcontrollers 중 하나에는하기 - (무효) viewDidAppear는 : 애니메이션 (BOOL)는

-(void) viewDidAppear:(BOOL)animated 
{ 
    NSLog(@"view did appear"); 
} 

을 추가라고합니다. 사실 그들 모두가 가지고 있습니다.

하위 viewcontroller 'C'에서 partent viewcontroller 'B'로 돌아갈 때 'B'에서 호출 할 viewDidAppear을 볼 것으로 기대합니다.

하지만 호출되지 않습니다. 'B'의 부모 인 뷰 컨트롤러 'A'에서도 호출되지 않습니다.

내가 할 수있는 일이 있나요?

디자인은 NAVBAR 컨트롤러가 내장 된 TABBAR 컨트롤러입니다. -code

+3

해당 메서드에서'[super viewDidAppear : animated];를 호출하십시오 – Eimantas

+0

이 [잠재적으로 중복되는 질문] (http://stackoverflow.com/questions/4719800/why-my-view-controller-not-call)을 확인하십시오. -the- voidviewdid는 툴이 아닌 방법을 사용합니다). –

답변

1

tabBarController를 처음 설정할 때 viewDidAppear에 대한 명시 적 호출을 작성해야합니다. 예를 들면 :

예상대로 한 tabBar 및 대리자 방법을 설정하는 것은 이후 다음, 호출 할 것이다 동안 당신은 단지 그것을 쓸 필요가
UITabBarController *tabBarController = [[UITabBarController alloc] init]; 
UINavigationController *navControllerObject = [[UINavigationController alloc]initWithRootViewController:viewControllerObject]; 
[viewControllerObject viewDidAppear:YES]; 

.

1

이것은 당신이 당신의 뷰 컨트롤러로 돌아갈 방법에 따라 달라 것입니다

많은 감사는 그 위임 방법은 소유 뷰 컨트롤러 (탐색 또는 TabBar의)에 의해 전송됩니다. 따라서 (예를 들어 ...) 네비게이션 컨트롤러를 사용하여 뷰 스택에서보기 컨트롤러를 밀고 팝하지 않으면 그 메시지를받지 못합니다.

편집 기본 탭 모음 컨트롤러 설정을 사용하는 것과 같은 소리가 다시 들린 후 탭 모음 컨트롤러가 vc를 설정하여 작업을 수행하도록하십시오.