[iphone-tabbar]如何自定义TabBarController

什么是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找找好用的。

 


 






 

 

 


 

posted @ 2010-11-02 20:13 AlexLiu 阅读(...) 评论(...) 编辑 收藏