什么是TabBarController
tabbar,通常情况下用来下面互相切换ViewControllers。使用方式有几种,其中最常见的就是指定tabArray,里面按着顺序存放controllers对象做为下面切换。这种操作可以放在AppDelegate里面,最终,加入window上。
深入理解TabBarController
本人曾尝试把TabBarController,tabbar的hidden=YES,之后发现下面黑色的tabbar没有了,但是会有白色的东西覆盖在上面。background Color 设置为clear都不行。 后来发现tabbar的现实内容的地方,设置的高度小了。所以导致看起来是白色的。后来把内容部分拉长,tabbar虽然还在下面那个位置,但是 hidden之后,就不会有那个白色的效果了。
if ( [[self.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] )
contentView = [self.view.subviews objectAtIndex:1];
else
contentView = [self.view.subviews objectAtIndex:0];
得到内容view
。 如何自定义TabBarController
1。第一种方式是完全重写TabBarController,使用view来代替,上面都是button,工作量非常大,有一点就是各个层级之间的切换无法弄的太透彻。什么时候在上面,下面,什么时候隐藏。
2。第二种是继承一个UItabbarController,然后在这个子类的上层加一个View。这个的好处在于切换直接通过hide的tabbar进行中转就行了。
中转函数。- (void)switchView:(id)sender
{ int index = [self.subviews indexOfObject:sender];
tabbarctrl.selectedIndex = index;
}
最后,当我们需要badgeVale,别忘了去320找找好用的。