iOS 萬能跳轉介面方法 (runtime實用篇一)

發表於2015-09-23

在開發專案中,會有這樣變態的需求:

  • 推送:根據服務端推送過來的資料規則,跳轉到對應的控制器
  • feeds列表:不同類似的cell,可能跳轉不同的控制器(噓!產品經理是這樣要求:我也不確定會跳轉哪個介面哦,可能是這個又可能是那個,能給我做靈活嗎?根據後臺返回規則任意跳轉?)

思考:wocao!這變態的需求,要拒絕他嗎?
switch判斷唄,考慮所有跳轉的因素?這不得寫死我...

 

我是這麼個實現的(runtime是個好東西)

利用runtime動態生成物件、屬性、方法這特性,我們可以先跟服務端商量好,定義跳轉規則,比如要跳轉到A控制器,需要傳屬性id、type,那麼服務端返回字典給我,裡面有控制器名,兩個屬性名跟屬性值,客戶端就可以根據控制器名生成物件,再用kvc給物件賦值,這樣就搞定了 ---O(∩_∩)O哈哈哈

比如:根據推送規則跳轉對應介面HSFeedsViewController

HSFeedsViewController.h

  • 進入該介面需要傳的屬性

AppDelegate.m

  • 推送過來的訊息規則

  • 接收推送訊息

  • 跳轉介面

  • 檢測物件是否存在該屬性

具體使用和程式碼: https://github.com/HHuiHao/Universal-Jump-ViewController

相關文章