效果圖如下.
這個(gè)側(cè)邊菜單的框架在github上有4K的star,是用OC寫(xiě)的并且不能用Cocoapods集成.
所以集成第一步在把.h.m文件導(dǎo)入Swift項(xiàng)目中后按照提示需要新建一個(gè)橋接文件.(或者在setting里自己配置) 然后在橋接文件當(dāng)中#import這個(gè)框架
接著我們就可以在Swift項(xiàng)目中使用這個(gè)框架了.橋接一個(gè)沒(méi)有Cocoapods的第三方這樣簡(jiǎn)單.
但是如何在Storyboard使用這個(gè)框架還是記錄一下吧...
一. 配置側(cè)拉菜單和默認(rèn)控制器
在需要用到側(cè)邊菜單的控制器前添加一個(gè)空的控制器并且設(shè)置它的class....
在這個(gè)效果圖中,它有左側(cè)邊欄和有側(cè)邊欄(側(cè)邊欄內(nèi)容展示的都是控制器的View),然后一個(gè)默認(rèn)顯示的控制器.所以它將指向三個(gè)控制器.
因?yàn)檫@三個(gè)控制器的顯示是框架幫我們處理的,連線的時(shí)候我們要選擇.custom
接著需要指示每一條線所連接的控制器的作用..在指定segue的identifier之后,,此框架會(huì)幫我們做對(duì)應(yīng)的處理.
框架中的identifier分別代表著三種意思
分別是 "左側(cè)菜單" "當(dāng)前顯示的" "右側(cè)菜單".... 啟動(dòng)程序后默認(rèn)的控制器視圖已經(jīng)出現(xiàn)了.
二. 如何彈出側(cè)拉控制器(側(cè)拉菜單)
這是封裝的一個(gè)彈出側(cè)拉菜單的方法,在控制器didload時(shí)候調(diào)用,在傳入左側(cè)或右側(cè)BarButtonItem之后便給它們綁定了彈出事件.
如果想要添加手勢(shì)側(cè)滑出現(xiàn)菜單的功能只需要給當(dāng)前控制器的view添加框架里已封裝好的revealVC.panGesture
其中#selector(SWRevealViewController.revealToggle(_:)) 這個(gè)方法就是根據(jù)segue的identifier來(lái)選擇對(duì)應(yīng)彈出的左側(cè)控制器.這是框架已經(jīng)封裝好的.
經(jīng)測(cè)試.側(cè)邊控制器的創(chuàng)建是當(dāng)revealToggle方法觸發(fā)或者view的panGesture觸發(fā)的時(shí)候,這個(gè)時(shí)候側(cè)欄剛要進(jìn)行顯示...不出現(xiàn)的時(shí)候也不會(huì)提前加載也確實(shí)合理...不過(guò)在側(cè)欄收起來(lái)之后側(cè)欄控制器并沒(méi)有銷毀,銷毀的生命周期應(yīng)該同中央的控制器相同.
三. 點(diǎn)擊側(cè)邊控制器的某一按鈕,切換中央控制器.
此demo中,在點(diǎn)擊側(cè)欄里的某一個(gè)按鈕后會(huì)切換中阿掩蓋你的控制器,并且側(cè)欄收回..這個(gè)過(guò)程不是簡(jiǎn)單的model或push,它會(huì)讓當(dāng)前顯示的控制器從主控制器的子控制器中移除并且加入一個(gè)新的將要切換的控制器,然后側(cè)欄收回....這些框架也幫我們做了.
點(diǎn)擊側(cè)欄控制器tableView中的某一個(gè)cell切換控制器.設(shè)置segue的class即可
接著它就會(huì)切換到你指向的那個(gè)控制器了.
github:?框架鏈接