Skip to content

Instantly share code, notes, and snippets.

@edwardean
Created December 17, 2015 08:53
Show Gist options
  • Save edwardean/3883d51447c7c9644c7a to your computer and use it in GitHub Desktop.
Save edwardean/3883d51447c7c9644c7a to your computer and use it in GitHub Desktop.
+ (void)load {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
Class class = [self class];
SEL viewDidLoadOriginalSelector = @selector(viewDidLoad);
SEL viewDidLoadswizzledSelector = @selector(set_webViewControllerViewDidLoad);
Method viewDidLoadOriginalMethod = class_getInstanceMethod(class, viewDidLoadOriginalSelector);
Method viewDidLoadSwizzledMethod = class_getInstanceMethod(class, viewDidLoadswizzledSelector);
BOOL didAddMethod = class_addMethod(class, viewDidLoadOriginalSelector,
method_getImplementation(viewDidLoadSwizzledMethod),
method_getTypeEncoding(viewDidLoadSwizzledMethod));
if (didAddMethod) {
class_replaceMethod(class, viewDidLoadswizzledSelector,
method_getImplementation(viewDidLoadOriginalMethod),
method_getTypeEncoding(viewDidLoadOriginalMethod));
} else {
method_exchangeImplementations(viewDidLoadOriginalMethod, viewDidLoadSwizzledMethod);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment