类似支付宝 两个UITabBarController的切换

aaaa.gif

今儿项目老大让在现有项目的基础上再增加一个模块儿,而且也要下面的tabBar,第一次尝试也看了一些文章,实现效果如上图,实现原理和主要代码如下:
实现原理:
第一步:从A_TabBarCtrl -> B_TabBarCtrl
1.点击A_TabBarCtrl的 商品Ctrl 中的按钮 push出B_TabBarCtrl
2.Push的同时将A_TabBarCtrl的tabBar和navBar隐藏,让我们可以看到B_TabBarCtrl的tabBar和navBar
3.在A_TabBarCtrl的viewWillAppear方法里将tabBar和navBar显示出来,避免从B_TabBarCtrl -> A_TabBarCtrl的时候tabBar和navBar没有显示的问题
以上两步就可以将B_TabBarCtrl push出来

关键代码:

- (void)push2B_TabBarCtrl
{
   B_TabBarCtrl *B = [[B_TabBarCtrl alloc] init];
   
   /// 隐藏tabBar 和navBar
   self.tabBarController.tabBar.hidden = YES ;
   self.navigationController.navigationBarHidden = YES;
   
   [self.navigationController pushViewController:B animated:YES];
   
}
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    /// 显示tabBar 和navBar
    self.tabBarController.tabBar.hidden = NO ;
    self.navigationController.navigationBarHidden = NO;
}

第二步: 从 B_TabBarCtrl -> A_TabBarCtrl

1.在B_TabBarCtrl的每一个childController里面增加一个返回按钮,其单击事件里将自己pop掉,此处注意的是需要使用

 [self.tabBarController.navigationController popToRootViewControllerAnimated:YES];

而非

[self.navigationController popToRootViewControllerAnimated:YES];

Demo下载地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,573评论 4 61
  • 喜欢在喧嚣之中保持沉默 喜欢在喧嚣之中保持沉默 喜欢在众人之外 看到你安静地待在一个人的角落 这世界是帝王将相的 ...
    一粒玉米阅读 525评论 0 0

友情链接更多精彩内容