URLNavigator 使用及思考

起头

最近听说swift要开始稳定API了,后期应该没啥大变化了。总算可以放心使用了,从swift2.0开始写过一个项目后,有点后怕了。因为swift编译慢,特别慢;每次打包包还特别大,MacMini整的嗷嗷叫;写代码的时候莫名其妙的报错,然后编译两遍又过了。加上公司项目比较急。最后还是用Object-C来完成项目。

一直在关注,却一直未去尝试,就像暗恋一个姑娘,明明很喜欢,但她的小脾气,让我望而却步;
看到swift3.0与4.1变化不大,总算放心开始使用swift写项目了。
swift有啥合适的router控件呢?经过一个小时的查找,找到了devxoul/URLNavigator
这个第三方,一看小伙子,你还是很6呀1.6k+的赞,不用你用谁?
然后就延伸到下面的问题;

为啥要用URLNavigator ?

  • 组件化,解耦;
    目前由于重写一个长期为维护的项目,决定使用swift使用组件化优化项目。目前相对来说使用URLNavigator是降低耦合性最方便的。所以目前就先用他了。

如何使用

使用步骤;
  1. 第一步
1. 在项目的PodFile文件中添加 pod 'URLNavigator'
2. pod install

项目中就导入了我们的URLNavigator;

  1. 第二步;
    创建NavigationMap文件
    在项目中导入模块文件
import UIKit
import URLNavigator
  1. 第三步 修改文件;
enum NavigationMap {

}
  1. 将视图控制器注册到URL模式
  • 这是第一种用法
  • 类似于泛型,也就是你要传的值;
    navigator.register("navigator://user/") { url, values, context in
      guard let username = values["username"] as? String else { return nil }
      return UserViewController(navigator: navigator, username: username)
    }

跳转

self.navigator.push("navigator://mine/6666")
//或者
self.navigator.present("navigator://mine/6666");
  • 讲解过程

局限,如何扩展;

  1. 目前最大的局限可能是只能传单字符;
  2. 传对象也不行;
  3. 字典的话,其实也很方便传过去;但是感觉这种URL的方式不是特别好;作者也没具体的工具,需要自己扩展;
  4. pop的方法也没有

下面为大家讲解,并扩展一些方法,让大家使用更方便;

  • 对象转json/json转对象
  • diction转json/json转diction
  • 怎么设计?协议,或者获取传来的类型,自动转;

你可能感兴趣的:(URLNavigator 使用及思考)