simplify application view transition. original API make very easy and more useful.
- simplify code. automatic push and present viewcontroller to current controller
- Support for UINavigationController transition completion. not use delegate
- Support with parameters transtion
- Support url base routing like web servise
instal from cocoapods
pod 'MYRoutes', '~> 0.1.0'
It is possible to deal�the URL of the various types. like a web service routing.
[[MYRoutes shared] loadRouteConfig:@[
@[@"/nib/:message" ,@{@"nib":@"XIBTestViewController",@"class":@"MYViewController"}],
@[@"/storyboard/first/:message" , @{@"storyboard":@"Main",@"identifier":@"First"}],
]];
[[MYRoutes shared] dispatch:[NSURL URLWithString:@"/nib/hello?category_id=1"]]
- push and present ViewController from XIB file
- push and present ViewController from Storyboard
- capture url pass (example config /tweet/:id . /tweet/1 → id = 1)
- capture query parameter pass (example config /post/view?post_id=1 . postId = 1)
set to viewcontroller befere transition
dispatch url ( example /nib/hello ) to push MYViewController from XIBTestViewController.xib file
@[@"/nib/:message" ,@{@"nib":@"XIBTestViewController",@"class":@"MYViewController"}],
dispatch url ( example /storyboard/first/helllo ) to push UIViewController(storyboard id "First") from Main.storyboard file
@[@"/storyboard/first/:message" , @{@"storyboard":@"Main",@"identifier":@"First"}],
// push MYViewController from Xib has message an categoryId parameters
[routes dispatch:[NSURL URLWithString:@"/nib/hello?category_id=1"]
// push MYViewController from Storyboard has message parameter
[routes dispatch:[NSURL URLWithString:@"/storyboard/first/hello"]]
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
// dispatch from url scheme. example xxxx://tweet/view/id
return [[MYRoutes shared] dispatch:url ];
}
[routes dispatch:[NSURL URLWithString:@"http://www.yahoo.co.jp"]]
// auto search current navigation contorller
[routes pushViewController:viewController animated:YES];
MYRoutes *routes = [MYRoutes shared];
[routes pushViewController:@"ViewControllerIdnetifier" withStoryboard:@"StoryboardName" animated:YES];
[routes pushViewController:@"ViewController" withNib:@"ViewControllerXIB" animated:YES];
[routes pushViewController:@"ViewControllerIdnetifier" withStoryboard:@"StoryboardName" animated:YES completion:^{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"navigation complete"
message:@"complete!!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}];
// auto search current viewcontorller
[routes presentViewController:viewController animated:YES completion:nil];
[routes presentViewController:@"ViewControllerIdnetifier" withStoryboard:@"StoryboardName" animated:YES completion:nil];
[routes presentViewController:@"ViewController" withNib:@"XIBTestViewController" animated:YES completion:nil];
NSDictionary *params = @{@"message":self.messageTexfield.text};
[routes presentViewController:@"ViewControllerIdnetifier" withStoryboard:@"StoryboardName" animated:YES completion:nil];
[routes pushViewController:@"ViewControllerIdnetifier" withStoryboard:@"StoryboardName" withParameters:params animated:YES completion:nil];