iOS 切换首页-更改tabbar的容器控制器


最近想到的一个小需求:

首页切换:点击一个切换按钮,能实现首页的风格、排版等变换,原理是用一个新的VC替换掉。

效果如下:

  ====》====》

 

 实现方式很简单:

 以我的Demo为例,讲一下思路

 1、将一下我的准备条件:底部是tabbarcontroller,每个里面装载一个Nav控制器

 2、找到第一个tabbar,替换内部子控制器

 

 核心代码实现:

 构造一个新Nav

 let newVC = UIStoryboard(name: "CurriculumSchedule", bundle: nil).instantiateViewControllerWithIdentifier("CurriculumScheduleViewController")
            
 let navNew = UINavigationController(rootViewController: newVC)

替换

//0下标表示第一个
self.tabBarController?.viewControllers![0] = navNew

这里有几个注意点:

1、上面那样替换完之后,tabbar那边的title和image都是移除了的,需要重新添加一遍。

navNew.tabBarItem.setTitleTextAttributes(selectedTextAttribute, forState: .Selected)
navNew.tabBarItem.image = UIImage(named:image)?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
navNew.tabBarItem.selectedImage = UIImage(named: imageSelected)?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

这样几步做完,就可以实现需要的效果了。

当然,要加一些切换动画效果,大家可以自己自定义。。。

 

2、这样做完之后,原首页还是在内存里的,如果要来回切换,最好对两个首页管理一下,不要重复创建,如果内存已存在,直接取用即可,没有再创建。

 

 

有疑问可以留言,over~~  

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM