如何像支付宝首页是tabbar+navigation,点击蚂蚁聚宝之后又push到一个tabbar+navgation,然后还能pop回来

今天看到支付宝是tabbar+4个navgation,在首页点击蚂蚁聚宝之后进去又是tabbar+navgation这种页面。
然后我也去做了这种功能,遇到了一些问题。求解决:
首先第一步的tabbar+4个navgation没有问题,在其中一个Controller里面跳转到新的tabbar+navgation。
问题1:

UITabBarController * tab        = [[UITabBarController alloc]init];
TestCtl  * testCtl = [[AdDialViewCtl alloc]init];
[tabVcs addObject: testCtl];
tab.viewControllers = tabVcs;
tab.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:tab animated:YES];

push过去发现,TestCtl这个控制器不能修改title。因为我push的是UITabBarController,所以设置self.navigationItem.title这个是没有用的。

问题2: 然后我把testCtl添加到navgation里面,发现又有新的问题出来了

UINavigationController * nav  = [[UINavigationController alloc] initWithRootViewController: testCtl];
[tabVcs addObject: nav];
tab.viewControllers = tabVcs;
[self.navigationController pushViewController:tab animated:YES];

这样title可以设置,但是因为是init UINavigationController所以肯定没法pop回去。
但是看支付宝实现了这个效果。

pop不回去的原因确实是因为navigationController拿错了,我在代码上拿的是self的navigationController,也就是当前添加到TabbarController的ViewController的导航栏,这个导航栏是pop不回去的。
我们应该拿到push TabbarController的这个导航栏,代码如下:

UITabBarController * tabbarCtl = self.tabBarController;
UINavigationController * nav = tabbarCtl.navigationController;

这样就可以pop回去

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

相关阅读更多精彩内容

友情链接更多精彩内容