在我的iOS应用程序中,我的窗口的rootViewController是一个标签栏控制器,其层次结构如下:
当用户点击某一行时FirstContentController,一个实例SecondController将被推送到其导航控制器上.SecondContentController将hidesBottomBarWhenPushed要YES在其init方法和套self.navigationController.toolbarHidden来NO的viewWillAppear:.
在iOS 6中,用户将挖掘该行FirstController并SecondController会得到推到导航控制器.因为它已hidesBottomBarWhenPushed设置,它将隐藏标签栏,并且在转换动画完成时,SecondController它将在屏幕上显示其工具栏.
但是,在iOS 7下进行测试时,其hidesBottomBarWhenPushed行为似乎已发生变化.我现在看到的是:
差距完全无法使用 - 它不响应触摸,如果我clipsToBounds在主视图上设置为YES,则没有任何内容.经过大量的调试和检查子视图层次结构后,看起来iOS的自动调整机制将视图控制器的视图调整为高度411(在iPhone 5上).应该是460到达工具栏,但布局系统似乎包括一个"鬼"49像素高的标签栏.
如果视图控制器的标签栏控制器为其父容器,则只会出现此问题.
在iOS 7上,当按下新控制器时,如何使标签栏消失并且工具栏无缝滑动到位,并且视图还占用导航项和工具栏之间的整个空间?
UPDATE
经过进一步调查后,只有在SecondController edgesForExtendedLayout设置为时才会发生这种情况UIRectEdgeNone.但是,除非我将该属性设置为,否则UIRectEdgeNone视图的框架太长并且在工具栏下方延伸,在该工具栏中无法看到或与之交互.
当我构建一个面向iOS 5或6的应用程序,但在iOS 7上运行它时会出现此问题.如果我在navigationController中有一个控制器,它是tabBarController的一部分,我会执行以下操作:
controller.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:testController animated:YES];
Run Code Online (Sandbox Code Playgroud)
发生奇怪的垂直定位动画.我希望新控制器(底部栏隐藏)可以推动或弹出导航控制器,将标签栏推出或将其拉回并且没有垂直定位更改.
问题视频:http://cl.ly/1w0g3j293m03
开放式雷达报告:http://www.openradar.me/14670329
iOS8上/ iphone
设置时
navigationbar.translucent = yes;
Run Code Online (Sandbox Code Playgroud)
如果还设置
blueVC.hidesBottomBarWhenPushed = yes;
Run Code Online (Sandbox Code Playgroud)
推ViewController,navigationbar右角显示黑色.
检测结果:
黑色区域UIWindow默认为.我将UIWindow背景颜色更改为白色并修复了问题.但这只是看起来更好,并没有完全解决.

=======================
使用hidesBottomBarWhenPushed时iOS7奇怪的动画
self.tabBarController.tabBar.hidden=YES;
Run Code Online (Sandbox Code Playgroud)
这种方法会导致推进进程tabbar消失.它没有解决问题.
我遇到了这个OpenRadar问题中描述的相同问题.如上所述:
简介:UIViewController的hidesBottomBarWhenPushed属性对于使用iOS 6 SDK构建的应用程序(不适用于iOS 7的beta SDK)无法正常工作.隐藏底栏(例如标签栏)时动画很奇怪.
重现步骤:
使用Xcode中的TabBar模板创建一个新项目4.将UINavigationController添加到FirstViewController.在FirstViewController上添加一个按钮,并设置其操作以推送新的视图控制器.(请参阅附带的示例代码)
在iOS 7 beta 5设备上运行演示.
按下按钮,从UINavigationController返回,注意动画视图过渡.
预期结果:动画与iOS 6设备完全相同.
实际结果:动画看起来很奇怪.FirstViewController从底部向下滑动.
示例代码:http://cl.ly/QgZZ
使用iOS 6 SDK构建时,有什么办法可以解决或解决这个问题吗?