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