开发笔记-IOS TAB-Navi 视图搭配下隐藏Tabbar的问题

IOS7.0 及以上

在TabBarController + UINavigationController 中, 若从进入下一级页面隐藏Tabbar,采用的方法就是用系统提供的方法,setHidesBottomBarWhenPushed。默认为NO。设为YES时,当PUSH到UINavigationController 中就隐藏Tabbar,直到它POP出来。这样就OK了。

但这存在一种问题,就是当切换window的rootViewController 时,就会失效,Tabbar显示出来了。

解决。

1.如何在切换后实现隐藏。

切换回TabBarController 时,判断当前选择的UINavigationController 分支的层级,如果UINavigationController的viewControllers.count 为0,说明在UINavigationController 顶层是需要显示Tabbar,若非0就隐藏。

这里注意一点,要先设置window的rootViewController 为TabBarController。再去做判断,否则无效果。

2.问题又来了,隐藏Tabbar后,原视图的view并没有变化,高度还是未包含tabbar的高度。

解决:

在UINavigationController 的继承类里或者每一个具体页面中加入

self.edgesForExtendedLayout=UIRectEdgeBottom;

self.automaticallyAdjustsScrollViewInsets=NO;

这两句话。

你可能感兴趣的:(开发笔记-IOS TAB-Navi 视图搭配下隐藏Tabbar的问题)