美文网首页
类似支付宝 两个UITabBarController的切换

类似支付宝 两个UITabBarController的切换

作者: 浪漫小牛 | 来源:发表于2017-12-15 00:19 被阅读20次
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下载地址

相关文章

网友评论

      本文标题:类似支付宝 两个UITabBarController的切换

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