ZYYRouter 是对原生页面跳转方法的一个封装,调用和传参都比原生 API 更加方便。

ZYYRouter Advantage

ViewControllerA 跳转到 ViewControllerB , 同时 ViewControllerAViewControllerB 传入一个 NSString 类型的参数。

Normal

1.导入 ViewControllerB 的头文件

1
#import "ViewControllerB.h"

2.初始化 ViewControllerB,属性赋值,navigationController pushViewController

1
2
3
ViewControllerB *viewControllerB = [[ViewControllerB alloc] init];
viewControllerB.string = @"ZYYRouter";
[self.navigationController pushViewController:viewControllerB animated:YES];

ZYYRouter

不需要导入头文件,不需要初始化控制器,字典传值,一句话实现跳转。

1
[[ZYYRouter sharedRouter] showViewController:NSStringFromClass([ViewControllerB class]) parameters:@{@"string":@"ZYYRouter"}];

ZYYRouter Usage

ZYYRouter 的所有方法都可以通过单例调用。

1
+ (instancetype)sharedRouter;

ZYYRouter 获取当前 window 展示的 ViewController

1
[[ZYYRouter sharedRouter] currentViewController]

ZYYRouter 获取当前 NavigationController

1
[[ZYYRouter sharedRouter] currentNavigationController]

无论是 Navigation Push 或者模态视图 Present 都可用一个方法带参跳转下一级页面。

1
2
- (void)showViewController:(NSString *)viewControllerName parameters:(NSDictionary *)parameters;
- (void)showViewController:(NSString *)viewControllerName parameters:(NSDictionary *)parameters animated:(BOOL)animated;

指定模态视图跳转。

1
- (void)presentViewControllerWithClassName:(NSString *)viewControllerName parameters:(NSDictionary *)parameters animated:(BOOL)animated;

无论是 Navigation Pop 或者模态视图 Dismiss 都可用一个方法带参返回指定页面。

1
2
- (void)backToViewController:(NSString *)viewControllerName parameters:(NSDictionary *)parameters;
- (void)backToViewController:(NSString *)viewControllerName parameters:(NSDictionary *)parameters animated:(BOOL)animated;

返回上一级界面。

1
2
- (void)popViewController;
- (void)popViewControllerAnimated:(BOOL)animated;

返回根控制器。

1
2
- (void)popToRootViewController;
- (void)popToRootViewControllerAnimated:(BOOL)animated;

Source Code