2012-08-07 177 views
0

訪問TabBarController變量基本上,我有一個TabBarController和連接到該控制器的一些子視圖。 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 

我題是:正如我在日誌中看到的,MyTabBarController的viewDidLoad函數在之前稱爲的FirstViewController。然而,似乎MyTabBarController的setDetails功能的FirstViewController的viewDidLoad後調用功能。

這怎麼可能呢?有什麼我在這裏做錯了嗎?

謝謝!

+1

嘗試把用於firstViewController代碼在'viewDidAppear'方法,而不是'viewDidLoad' :) – 2012-08-07 10:02:49

+0

它的工作,謝謝。這兩個功能有什麼區別? – 2012-08-07 10:04:17

回答

1

儘量把爲firstViewController的代碼viewDidAppear方法,而不是viewDidLoad

編碼快樂:)

而對於bet'n這兩個的區別只是檢查出來的文檔中有關它在蘋果的開發者網站:)

正式viewDidLoad呼叫在加載視圖

而且viewDidAppear電話的當過VIE的時候的一次w是即將出現在屏幕上:)

編碼快樂:)

+0

你很喜歡:)並且可以隨時請求幫助:) – 2012-08-07 11:29:53

相關問題