You just need to disable the button while pushing to another View Controller.
You can create category ofUINavigationController
for pushing to another view Controller. Make sure that you enable the button before coming back to current viewController
@interface UINavigationController (CompletionHandler)
- (void)pushViewController:(UIViewController *)viewController
animated:(BOOL)animated
completion:(void (^)(void))completion;
@end
@implementation UINavigationController (CompletionHandler)
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated completion:(void (^)(void))completion {
[CATransaction begin];
[CATransaction setCompletionBlock:completion];
[self pushViewController:viewController animated:animated];
[CATransaction commit];
}
@end
Call the below code for pushing to another ViewController
[self.navigationController pushViewController:ControllerObj animated:YES completion:^{
btn.userInteractionEnabled = NO; // Your Button Object
NSLog(@"COMPLETED");
}];