2011-11-22 53 views
0

這聽起來可能是一個新手問題,但我是新的iOS開發。tabBar和navigationBar大小奇怪的返回值

我打電話繼viewDidLoad中

CGFloat tabBarHeight = self.tabBarController.tabBar.frame.size.height; 
CGFloat navigationBarHegith = self.navigationController.navigationBar.bounds.size.height; 

的返回值是0兩個,爲什麼會這樣?這是不是意味着navigationBar和tabBar已經加載到內存中並初始化了。

回答

2

viewDidLoad不保證用戶界面對象已被實例化 - 它們爲零,因爲它們可能不存在。試試viewWillAppear

1

這很可能是您的視圖控制器沒有標籤欄控制器和導航控制器。

檢查self.tabBarController和self.navigationController的值,如果它們爲零(不是零),與java或C++不同,則在nil上調用方法將簡單地返回0,這就是您所得到的。

+0

您的權利!結構如下,在應用程序委託中,我創建了帶有UINavigation Controller的tabBarViewControllers,那麼它們是可以自我訪問的嗎? – deimus

+0

感謝我的+1! :) – deimus

0

它適用於我。讓舒爾,你的標籤欄和導航。酒吧都已經inited,當你嘗試那裏的屬性。在 - (void)viewWillAppear:(BOOL)動畫方法中執行。