訪問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
後調用功能。
這怎麼可能呢?有什麼我在這裏做錯了嗎?
謝謝!
嘗試把用於firstViewController代碼在'viewDidAppear'方法,而不是'viewDidLoad' :) – 2012-08-07 10:02:49
它的工作,謝謝。這兩個功能有什麼區別? – 2012-08-07 10:04:17