我有一個導航欄一模式彈出視圖,當我嘗試訪問從當前加載視圖使用聲明導航欄的高度...iOS Dev:爲什麼self.navigationController.navigationBar.frame.size.height返回零?
self.navigationController.navigationBar.frame.size.height;
...返回0。爲什麼那會是什麼?
感謝這麼多提前爲你的智慧!
我有一個導航欄一模式彈出視圖,當我嘗試訪問從當前加載視圖使用聲明導航欄的高度...iOS Dev:爲什麼self.navigationController.navigationBar.frame.size.height返回零?
self.navigationController.navigationBar.frame.size.height;
...返回0。爲什麼那會是什麼?
感謝這麼多提前爲你的智慧!
很可能是因爲您使用的是你的表達對象之一是nil
。
這可能是self.navigationController
本身的例子。也許你誤解了你的視圖層次? (嘗試到NSLog(@"%@", self.navigationController);
來檢查它是否是nil
並且確定)
是的,你是對的,導航控制器爲零。謝謝! – BeachRunnerFred
不知道爲什麼,但如果你沒有任何改變,導航欄,將永遠有一個44個像素高度
這是不正確的。在橫向更多iPhone上,NavigationBar與縱向模式中的高度不同。 – AliSoftware
真,對不起它的景觀 – nicolasthenoz
32而且,這是不好的做法在你的代碼中使用幻數,如硬盤寫入值。我們見過,蘋果可以在操作系統和手機本身(改變的東西如大家,硬wroted今天'480'廣告在他們的代碼的屏幕的高度被擰緊,而使用'view.window.screen.applicationFrame.size .height'仍然會在任何地方返回正確的值),所以沒有任何擔保,Apple不會在未來版本的iOS中更改NavBar的高度。因此,更好的做法是獲得像OP一樣的價值,而不是對價值進行硬編碼。 – AliSoftware
你使用什麼格式參數(即%@,%llu) –
向我們展示更多代碼.. – mspasov