Ios5 应用程序启动时视图的位置不同

Ios5 应用程序启动时视图的位置不同,ios5,uitabbarcontroller,uinavigationbar,uiapplicationdelegate,Ios5,Uitabbarcontroller,Uinavigationbar,Uiapplicationdelegate,我有一个应用程序,它有一个UITabBarController,当按下不同的选项卡时,我会覆盖视图,获取对tabBarController的引用,然后调整其框架的大小。这样做的原因是,一些选项卡需要屏幕的全高,而其他选项卡的背景位于顶部120像素 我引用tabBarcontroller的方式是获取应用程序委托并使用其对tabBarcontroller的引用来移动其位置: MyAppDelegate*del=[UIApplication sharedApplication]。委托; del.tab

我有一个应用程序,它有一个UITabBarController,当按下不同的选项卡时,我会覆盖视图,获取对tabBarController的引用,然后调整其框架的大小。这样做的原因是,一些选项卡需要屏幕的全高,而其他选项卡的背景位于顶部120像素

我引用tabBarcontroller的方式是获取应用程序委托并使用其对tabBarcontroller的引用来移动其位置:

MyAppDelegate*del=[UIApplication sharedApplication]。委托; del.tabBarController.view.frame=CGRectMake(0120320360)

这种方法在选项卡之间切换时效果很好,但是应用程序第一次加载时,它会做一些奇怪的事情,我不明白为什么。我的第一个选项卡实际上有一个导航栏,然后包含一个包含pickerView的视图。第一次加载应用程序时,NavigationBar显示约10px过低,但pickerView仍显示在正确的位置。我希望在调用ViewWillDisplay的第一次调用时,我可以通过不同的方式处理问题来解决这个问题,但是如果我减少y位置以补偿导航栏,它会将所有内容一起移动,包括视图中的日期选择器

我想了解为什么应用程序在第一次加载时表现不同,希望有人能向我解释这一点,并对如何解决问题有任何想法,或者请为我指出正确的方向。我怀疑这与顶部的状态栏有关,因为它的大小与我看到的偏移量大致相同

任何帮助都将不胜感激!
谢谢

好的,我已经弄明白了。如果有人感兴趣,那么在应用程序启动时,
UINavigationBar
的帧的y位置似乎为10像素。我所要做的就是将
UINavigationBar
的帧垂直位置设置回0像素,一切正常!任何需要这样做的人,下面是代码:

self.navigationController.navigationBar.frame = CGRectMake(0,0,320,45)
我在
视图中调用上面的行将出现
方法,所有工作都按预期进行