测试已测试 | ✓ |
语言语言 | Obj-CObjective C |
许可 | MIT |
发布最新发布 | 2016年9月 |
由Sash Zats、Lior Rozner、Nguyen Quoc Dat维护。
VSPNavigationManager *manager = [[VSPNavigationManager alloc] initWithURLScheme:@"my-app"];
// Register the route matching URL my-app://home/posts/123xyz
[manager registerNavigationForRoute:@"/home/posts/:post_id" handler:^VSPNavigationNode *(NSDictionary *parameters) {
VSPNavigationNode *root = [VSPNavigationNode rootNodeForParameters:parameters nodeIds:RootNodeId, NewsFeedNodeId, PostNodeId, nil];
root.leaf.viewController = [PostViewController postViewControllerWithPostId:parameters[@"post_id"]];
return root;
}];
// Define presentation and dismissal rules
[self addRuleForHostNodeId:NewsFeedNodeId childNodeId:PostNodeId mountBlock:^RACSignal *(VSPNavigationNode *parent, VSPNavigationNode *child) {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[parent.viewController presentViewController:child.viewController animated:animated completion:^{
[subscriber sendCompleted];
}];
return nil;
}];
} unmounBlock:^RACSignal *(VSPNavigationNode *parent, VSPNavigationNode *child) {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[child.viewController dismissViewControllerAnimated:animated completion:^(BOOL finished){
[subscriber sendCompleted];
}]
return nil;
}];
}];
请参阅示例项目获取详细信息。
要运行示例项目,请先从仓库中克隆,然后在Example目录中首先运行pod install
。
Vespucci可以通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile中:
pod "Vespucci"
Sash Zats,[email protected]
Vespucci在MIT许可下可用。见LICENSE文件获取更多信息。