tabBar和导航栏大小奇怪的返回值

时间:2011-11-22 08:01:13

标签: iphone objective-c ios

这可能听起来像一个新手问题,但我是新的iOS开发。

我在viewDidLoad中调用了以下内容

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

两者的返回值均为0,为什么会这样?这不意味着navigationBar和tabBar已经加载到内存中并初始化。

3 个答案:

答案 0 :(得分:2)

viewDidLoad不保证用户界面对象已被实例化 - 它们为零,因为它们可能不存在。试试viewWillAppear

答案 1 :(得分:1)

视图控制器更可能没有标签栏控制器和导航控制器。

检查self.tabBarController和self.navigationController的值,如果它们是零(零),与java或C ++不同,nil上的invoke方法只会返回0,这就是你得到的。

答案 2 :(得分:0)

它对我来说很好。使shure,你的标签栏和导航。当你在那里找到房产时,酒吧已经全部投入使用。在 - (void)viewWillAppear:(BOOL)动画方法中执行此操作。