美文网首页
类似支付宝 两个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