iOS高階之路由MGJRouter 1(13)

2021-09-27 06:57:41 字數 1816 閱讀 9414

之前也去了解路由的概念,但是一直拖著沒去認真學習,沒去實踐。因為一直覺得陌生不知怎麼下手。我知道大的專案以及元件化開發離不了路由實現。路由是一項重要的技能。我決定花一段時間去研究它、demo中實現它。一定要學會路由。並能很熟練的應用。一口吃不乙個胖子,要有耐心,從易到難。先學習乙個簡單的例子。這是蘑菇街的乙個路由的方法。只是覺得mgjrouter簡單。其原理主要是通過註冊url來實現路由跳轉。

背景mgjrouter

使用主要有兩個步驟:

註冊url生成路由表。

openurl實現跳轉。

下面是乙個簡單的使用demo:

一、我們建立乙個類globalmodulerouter,然後在+(void)load方法裡面統一註冊url

#import @inte***ce globalmodulerouter : nsobject

@end

#import "globalmodulerouter.h"

#import "mgjrouter.h"

#import "testviewcontroller1.h"

#import "testviewcontroller2.h"

#import "testviewcontroller3.h"

@implementation globalmodulerouter

// 在load方法中自動註冊,在主工程中不用寫任何**。

+ (void)load ];

[mgjrouter registerurlpattern:@"lwt://test2/pushmainvc" tohandler:^(nsdictionary *routerparameters) ];

[mgjrouter registerurlpattern:@"lwt://test3/pushmainvc" tohandler:^(nsdictionary *routerparameters) ];

[mgjrouter registerurlpattern:@"lwt://test2/getmainvc" toobjecthandler:^id(nsdictionary *routerparameters) ];

}@end

二、呼叫:

#import "viewcontroller.h"

#import "mgjrouter.h"

@inte***ce viewcontroller ()

@end

@implementation viewcontroller

- (void)viewdidload

- (ibaction)pushtest1moduleaction:(id)sender

completion:nil];

}- (ibaction)pushtest2moduleaction:(id)sender

completion:nil];

}- (ibaction)pushtest3moduleaction:(id)sender ,

}completion:nil];

}- (ibaction)objecttestaction:(id)sender ] animated:yes];

}

pod 『mgjrouter』, 『~>0.9.0』

mgjrouter_swift版本

參考[ios] 元件化之一:mgjrouter的簡單實用

iOS 高階之路

自己閱讀,翻譯,裡面不懂的單詞,記下來,多學幾遍,這些你不懂的單詞,在以後你看其他時文件裡還會出現無數次的。堅持幾個月後,你會發現,英文的文件,看起來比中文的順眼了。為什麼要找自己熟悉的技術看,因為那樣的話,你更容易理解和增加信心。作為技術人員為什麼要寫部落格 即便沒有讀者,你也要寫部落格 原始碼 ...

iOS 高階之路 2

1.屬性 assign 純量型別 例如 cgfloat strong 擁有關係 為這種屬性設定新值時候,設定方法會先保留新值,並釋放舊值,然後將新值設定上去 weak 非擁有關係 為這種屬性設定新值時候,既不保留新值,也不釋放舊值。屬性所指的物件遭到摧毀時,屬性值也會清空 unsafe unreta...

高階靜態路由之路由過濾(一)

一 說明 1 ip route命令 ip route dest network mask administrative distance permanent dest network 目的網路 mask 目的網路子網掩碼 exit inte ce 去往目的網路的出站介面 administrative...