最近想到的一個小需求:
首頁切換:點擊一個切換按鈕,能實現首頁的風格、排版等變換,原理是用一個新的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~~