最近想到的一个小需求:

首页切换:点击一个切换按钮,能实现首页的风格、排版等变换,原理是用一个新的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~~  

  

最新文章

  1. 在idea中maven项目jdk编译version总是跳到1.5
  2. 在Activity之间传递参数(二)
  3. CSS使图片变灰
  4. linux基本工具使用(二)
  5. C++Socket编程总结 [转]
  6. Linux下如何移除同时在线的用户
  7. UITabBarItem编写的时候出现得图片显示异常,和有一些比较忽略的方法总结
  8. Java + Excel 接口自动化
  9. .Net Framwork类库
  10. Apache URL转发
  11. Summer Holiday(强联通入度最小点)
  12. w5cValidator【AngularJS】 2.0 版本发布
  13. MySQL TIMESTAMP(时间戳)详解
  14. Nginx学习笔记4 源码分析
  15. 精通CSS+DIV基础总结(三)
  16. Openjudge-计算概论(A)-求出e的值
  17. python3.4 安装 scrapy 报错 VS2010
  18. html阶段测试
  19. cocos对lua代码加密
  20. Mermaid js与流程图、甘特图..

热门文章

  1. es6之let和const
  2. zookeeper集群搭建
  3. 【CSS3动画】transform对文字及图片的旋转、缩放、倾斜和移动
  4. mysql交互式连接&非交互式连接
  5. 读书笔记--SQL必知必会03--排序检索数据
  6. Rafy 框架 - 幽灵插件(假删除)
  7. 使用Setup Factory安装包制作工具制作安装包
  8. python 数据类型 ---字符串
  9. apache中怎么配置网站的默认首页
  10. Eclipse代码和xml文件的智能提示