Skip to content

Instantly share code, notes, and snippets.

@craigmarvelley
Created May 16, 2016 13:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save craigmarvelley/3e479a9c7d9e7724790afe99c04e7855 to your computer and use it in GitHub Desktop.
Save craigmarvelley/3e479a9c7d9e7724790afe99c04e7855 to your computer and use it in GitHub Desktop.
- (void)interceptSeguesToPerformDependencyInjection {
NSError *error;
id<AspectToken> DIAspectToken = [UIViewController aspect_hookSelector:@selector(prepareForSegue:sender:) withOptions:AspectPositionBefore usingBlock:^(id<AspectInfo> aspectInfo, UIStoryboardSegue *segue, id sender) {
UIViewController *destinationController = segue.destinationViewController;
[self.UIAssembly inject:destinationController];
if ([destinationController isKindOfClass:[UINavigationController class]]) {
for (UIViewController *viewController in destinationController.childViewControllers) {
[self.UIAssembly inject:viewController];
}
}
} error:&error];
if (error) {
DDLogError(@"Failed to configure view controller dependency injection: %@", error);
return;
}
self.DIAspectToken = DIAspectToken;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment