这可能听起来像一个新手问题,但我是新的iOS开发。
我在viewDidLoad中调用了以下内容
CGFloat tabBarHeight = self.tabBarController.tabBar.frame.size.height;
CGFloat navigationBarHegith = self.navigationController.navigationBar.bounds.size.height;
两者的返回值均为0,为什么会这样?这不意味着navigationBar和tabBar已经加载到内存中并初始化。
答案 0 :(得分:2)
viewDidLoad
不保证用户界面对象已被实例化 - 它们为零,因为它们可能不存在。试试viewWillAppear
。
答案 1 :(得分:1)
视图控制器更可能没有标签栏控制器和导航控制器。
检查self.tabBarController和self.navigationController的值,如果它们是零(零),与java或C ++不同,nil上的invoke方法只会返回0,这就是你得到的。
答案 2 :(得分:0)
它对我来说很好。使shure,你的标签栏和导航。当你在那里找到房产时,酒吧已经全部投入使用。在 - (void)viewWillAppear:(BOOL)动画方法中执行此操作。