JYRouter.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. //
  2. // JYRouter.h
  3. // Job-Yang
  4. //
  5. // Created by 杨权 on 16/9/22.
  6. // Copyright © 2016年 Job-Yang. All rights reserved.
  7. //
  8. #import "Routable.h"
  9. @interface UINavigationController (Extensions)
  10. @end
  11. @interface JYRouter : Routable
  12. /**
  13. 单例
  14. @return JYRouter单例对象
  15. */
  16. + (instancetype)router;
  17. /**
  18. 获取一个新的Router对象
  19. @return JYRouter对象
  20. */
  21. + (instancetype)newRouter;
  22. /**
  23. 设置自定义的Navigation,用于present时显示
  24. 如果您想全局设置,请在AppDelegate 的didFinishLaunchingWithOptions方法中设置
  25. [[JYRouter router] setCustomNavigationClass:[YourCustomNavigation class]];
  26. @param navClass Navigation Class
  27. */
  28. - (void)setCustomNavigationClass:(Class)navClass;
  29. /**
  30. 判断该URL是否可以路由跳转
  31. @param url url
  32. @return 是否可以跳转
  33. */
  34. - (BOOL)hasRouter:(NSString *)url;
  35. /**
  36. 获取当前显示的VC
  37. @return 当前显示的VC
  38. */
  39. - (UIViewController *)currentVC;
  40. /**
  41. 通过VC名称初始化VC
  42. @param viewController VC名称
  43. @return VC对象
  44. */
  45. - (UIViewController *)controllerWithRouter:(NSString *)viewController;
  46. /**
  47. 通过VC名称初始化VC,并params映射将指定的属性赋值
  48. @param viewController VC名称
  49. @param params 属性映射
  50. @return VC对象
  51. */
  52. - (UIViewController *)controllerWithRouter:(NSString *)viewController
  53. params:(NSDictionary *)params;
  54. #pragma mark - Push
  55. /**
  56. 通过VC名Push到指定的VC(默认显示push动画)
  57. @param viewController VC名称
  58. */
  59. - (void)push:(NSString *)viewController;
  60. /**
  61. 通过VC名Push到指定的VC(是否显示push动画)
  62. @param viewController VC名称
  63. @param animated 是否显示动画
  64. */
  65. - (void)push:(NSString *)viewController
  66. animated:(BOOL)animated;
  67. /**
  68. 通过VC名Push到指定的VC,并params映射将指定的属性赋值
  69. @param viewController VC名称
  70. @param animated 是否显示push动画
  71. @param params 属性映射
  72. */
  73. - (void)push:(NSString *)viewController
  74. animated:(BOOL)animated
  75. params:(NSDictionary *)params;
  76. /**
  77. 通过VC名Push到指定的VC,并params映射将指定的属性赋值
  78. @param viewController VC名称
  79. @param animated 是否显示push动画
  80. @param params 属性映射
  81. @param completion 完成回调
  82. */
  83. - (void)push:(NSString *)viewController
  84. animated:(BOOL)animated
  85. params:(NSDictionary *)params
  86. completion:(void(^)())completion;
  87. #pragma mark - Present
  88. /**
  89. 通过VC名Present到指定的VC(默认显示Present动画)
  90. @param viewController VC名称
  91. */
  92. - (void)present:(NSString *)viewController;
  93. /**
  94. 通过VC名Present到指定的VC(是否显示Present动画)
  95. @param viewController VC名称
  96. @param animated 是否显示Present动画
  97. */
  98. - (void)present:(NSString *)viewController
  99. animated:(BOOL)animated;
  100. /**
  101. 通过VC名Present指定的VC,并params映射将指定的属性赋值
  102. @param viewController VC名称
  103. @param animated 是否显示Present动画
  104. @param params 属性映射
  105. */
  106. - (void)present:(NSString *)viewController
  107. animated:(BOOL)animated
  108. params:(NSDictionary *)params;
  109. /**
  110. 通过VC名Present指定的VC,并params映射将指定的属性赋值
  111. @param viewController VC名称
  112. @param animated 是否显示Present动画
  113. @param params 属性映射
  114. @param completion 完成回调
  115. */
  116. - (void)present:(NSString *)viewController
  117. animated:(BOOL)animated
  118. params:(NSDictionary *)params
  119. completion:(void(^)())completion;
  120. #pragma mark - Pop
  121. /**
  122. Pop到上级VC(默认显示Pop动画)
  123. */
  124. - (void)pop;
  125. /**
  126. Pop到上级VC(是否显示Pop动画)
  127. @param animated 是否显示Pop动画
  128. */
  129. - (void)pop:(BOOL)animated;
  130. /**
  131. Pop到根控制器(默认显示Pop动画)
  132. */
  133. - (void)popToRoot;
  134. /**
  135. Pop到根控制器(是否显示Pop动画)
  136. @param animated 是否显示Pop动画
  137. */
  138. - (void)popToRoot:(BOOL)animated;
  139. /**
  140. Pop到根控制器(是否显示Pop动画)
  141. @param animated 是否显示Pop动画
  142. @param completion 完成回调
  143. */
  144. - (void)popToRoot:(BOOL)animated
  145. completion:(void(^)())completion;
  146. /**
  147. 通过VC名Pop到指定的VC(默认显示Pop动画)
  148. @param viewController VC名称
  149. */
  150. - (void)popTo:(NSString *)viewController;
  151. /**
  152. 通过VC名Pop到指定的VC(是否显示Pop动画)
  153. @param viewController VC名称
  154. @param animated 是否显示Pop动画
  155. */
  156. - (void)popTo:(NSString *)viewController
  157. animated:(BOOL)animated;
  158. /**
  159. 通过VC名Pop到指定的VC(是否显示Pop动画)
  160. @param viewController VC名称
  161. @param animated 是否显示Pop动画
  162. @param completion 完成回调
  163. */
  164. - (void)popTo:(NSString *)viewController
  165. animated:(BOOL)animated
  166. completion:(void(^)())completion;
  167. #pragma mark - Dismiss
  168. /**
  169. dismiss(默认显示Dismiss动画)
  170. */
  171. - (void)dismiss;
  172. /**
  173. dismiss(是否显示Dismiss动画)
  174. @param animated 是否显示Dismiss动画
  175. */
  176. - (void)dismiss:(BOOL)animated;
  177. /**
  178. dismiss(是否显示Dismiss动画)
  179. @param animated 是否显示Dismiss动画
  180. @param completion 完成回调
  181. */
  182. - (void)dismiss:(BOOL)animated
  183. completion:(void(^)())completion;
  184. @end