美文网首页
自定义tabbarController 问题

自定义tabbarController 问题

作者: miG92 | 来源:发表于2017-10-14 23:39 被阅读0次

以往自定义tabbar 都是通过继承tabbarController自定义  隐藏系统的tabbar 写个view加到tabbarController.view  这样做基本上可以满足大部分样式的tabbar样式需求    一次项目里 用到侧滑返回手势  发现了问题  隐藏自定义的tabbar 需要隐藏那个自定义的view  这样在侧滑返回手势中 即使没有完全返回  也都会一次次调用viewwillappear 等方法      让我们在返回之后显示那个自定义的view过程中出现一系列问题  要么没返回之前显示 这样就会出现在下一个页面的底端   如果完全返回之后显示  那么侧滑过程中会看到一段空白   问题依然没有解决  除非你不用侧滑手势 一点问题没有   在该隐藏的时候 隐藏

在tabbarViewcontroller 内 写如下方法

-(void)setHidesBottomBarWhenPushed:(BOOL)hidesBottomBarWhenPushed{

self.你自己定义的View.hidden = hidesBottomBarWhenPushed;

}

在你要隐藏的子页面中

-(void)viewWillAppear:(BOOL)animated

{

self.tabBarController.hidesBottomBarWhenPushed = YES;

}

在disappear里改为NO 就行了

那么如果想用侧滑手势返回 又要自定义tabbar 怎么办呢   不隐藏 系统tabbar  直接写view加在  上面  

因为系统的tabbar很有灵性  在自定义navigation里面  写一下截获一下push方法事件 之后  只要在push的时候隐藏    返回到根控制器竟然 会好好的显示  一点问题没有  

截获事件的写法

/**拦截push方法*/

-(void)pushViewController:(UIViewController*)viewController animated:(BOOL)animated

{

if(self.viewControllers.count>0) {

viewController.hidesBottomBarWhenPushed=YES;

}

[superpushViewController:viewControlleranimated:animated];

}

此时的自定义tabbar 和系统的是同步的 就很好处理了  

相关文章

网友评论

      本文标题:自定义tabbarController 问题

      本文链接:https://www.haomeiwen.com/subject/haxquxtx.html