XLUrlRouter主要針對控制器跳轉(zhuǎn)躯畴,使用簡潔明了
本路由器借鑒DCURLRouter,DCURLRouter是OC的路由器框架民鼓,由于項目用swift重構(gòu),swift當(dāng)前路由框架沒有特別適合我的蓬抄,所以我自己搭建了這么一個XLUrlRouter框架丰嘉,純swift封裝,喜歡給個star嚷缭。
具體使用說明如下:
1.創(chuàng)建一個.plist文件饮亏,內(nèi)容大致如下:
可以創(chuàng)建類似的plist文件,內(nèi)容不用完全相同阅爽,但是層次要相同
2.在項目的AppDelegate里面注冊控制器路幸,如圖0.0.2
Router.loadConfigDict(pistName: "XXXXXX.plist")
Router.loadConfigDict(pistName:"XXXXXX")
紅線框內(nèi)的兩種注冊方式都可以,代碼中做了兼容處理优床,為了使框架更為友好
3.框架中有兩個主文件Router和LL
Router主要負(fù)責(zé)根據(jù)URL路徑進(jìn)行跳轉(zhuǎn)的功能:
1.控制器的pushViewController功能:
Router.go(urlString:"url路徑",query: ["參數(shù)":參數(shù)] , animated:true) { (params)in
? ? ? ? ? ? log("回到ViewController 參數(shù)=\(params ?? ["":""])")
?}
2.控制器的presentViewController功能:
Router.present(urlString: "url路徑", animated: true) {
? ? ? ? ? ? log("ViewController開始present")
}
3.控制器的popViewController功能:
Router.goBack(params: ["uid":2], animated:true)
LL主要負(fù)責(zé)系統(tǒng)控制器跳轉(zhuǎn)的功能劝赔,可以在任何地方進(jìn)行跳轉(zhuǎn),不受限制
1.控制器的pushViewController功能:
LL.pushViewController(vc, animated: animated,false)
2.控制器的presentViewController功能:
LL.presentViewController(vc, animated: animated, completion: completion)
3.控制器的popViewController功能:
LL.popViewController(animated: animated)
可以pop兩次:
LL.popTwiceViewController(animated: true)
也可以pop到跟控制器:
LL.popToRootViewController(animated: true)
還可以pop多次:
LL.popViewController(times: n, animated:true)
4.控制器的dismissViewController功能:
LL.dismissViewController(animated: true)
可以dismiss兩次:
LL.dismissTwiceViewController(animated: true)
也可以dismiss到跟控制器:
?LL.dismissToRootViewController(animated: true)
還可以dismiss多次:
LL.dismissViewController(times: n, animated:true)