2012-08-07 7 views
0

기본적으로 TabBarController와이 컨트롤러에 연결된 일부 하위보기가 있습니다. TabBarController에는 하위보기에서 액세스하려는 일부 속성이 있습니다. 여기 하위 ViewController에서 TabBarController 변수에 액세스

내가 가진 무엇 :

MyTabBarController의하는 .m

-(void)setDetails:(id)sender 
{ 
    self.myVariable = @"This is a test"; 
    NSLog(@"Here I set my variable"); 
} 

- (void)viewDidLoad 
{ 
    NSLog(@"[LOAD] My Tab Bar Controller"); 
    [self setDetails:nil]; 
} 

첫 번째 서브 뷰의하는 .m

다음
- (void)viewDidLoad 
{ 
    NSLog(@"[LOAD] FirstViewController"); 

    MyTabBarController *myTBC = (MyTabBarController *)self.tabBarController; 
    self.headerName.text = myTBC.myViariable; // Here I just set the UILabel's text 
    NSLog(@"Header name = %@", self.headerName); 
} 

내가 로그에있는 내용은 다음과 같습니다

2012-08-07 11:43:23.001 MyFirstproject[23632:15203] [LOAD] My Tab Bar Controller 
2012-08-07 11:43:23.012 MyFirstproject[23632:15203] [LOAD] FirstViewController 
2012-08-07 11:43:23.072 MyFirstproject[23751:15203] Header name = (null) 
2012-08-07 11:43:23.116 MyFirstproject[23751:15203] Here I set my variable 

내 문제 로그에서 볼 수 있듯이 viewDidLoad MyTabBarController의 기능은 FirstController의 앞에 입니다. 그러나, 이후에 MyTabBarController의 setDetails 함수는 이고, FirstViewController 함수는 viewDidLoad입니다.

어떻게 가능합니까? 내가 여기서 잘못하고 있는게 있니?

감사합니다.

+1

시도 대신 viewDidLoad''의 viewDidAppear' 방법'에 firstViewController에 대한 코드를 넣어 : –

+0

을 그것은 일, 감사합니다. 이 두 기능의 차이점은 무엇입니까? –

답변

1

봅니다 대신 viewDidAppear 방법에 firstViewController에 대한 코드를 넣어 viewDidLoad

해피 코딩 :)

그리고 그 두 bet'n의 차이에 대한

그냥 애플의 개발자 사이트에 관한 문서를 확인해 :)

공식적으로 viewDidLoad 전화의 번

그리고 viewDidAppear 전화의 사상 VIE보기를로드시 w 화면 :)에 출연하는 것입니다

해피 코딩 :)

+0

잘 오셨습니다 :) 언제든지 도움을 요청할 수 있습니다 :) –

관련 문제