zoukankan      html  css  js  c++  java
  • 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~~  

      

  • 相关阅读:
    用户及文件权限管理
    Linux基础操作及概念
    监督学习和非监督学习
    基于仿生算法的智能系统I
    9.Dijkstra求最短路 II 堆优化的Dijkstra
    8.Dijkstra求最短路 I 朴素Dijkstra
    7.有向图的拓扑序列 拓扑排序
    6.树与图的广度优先遍历 图中点的层次
    5.树的重心 树与图的深度优先遍历
    4.八数码 BFS
  • 原文地址:https://www.cnblogs.com/yajunLi/p/6225389.html
Copyright © 2011-2022 走看看