When I use pushViewController
, viewWillDisappear
(first view controller) is called. After that, the screen freezes, hence no action is performed and I put breakpoint on nextviewcontroller
, it doesn't get called in viewDidLoad
method.
//first View Controller from where pushViewController
[[AppCommonFunctions sharedInstance]pushVCOfClass:[NextViewController class] fromNC:[self navigationController] animated:YES popFirstToVCOfClass:nil modifyVC: ^(id info) {
[((NextViewController *)info)setEventInfo : object];
}];
//common method for push view controller in another file
- (void)pushVCOfClass:(Class)class1 fromNC:(UINavigationController *)nc animated:(BOOL)animated popFirstToVCOfClass:(Class)class2 modifyVC:(operationACFFinishedBlock)modify {
RESIGN_KEYBOARD
[self popToViewControllerOfKind : class2 from : nc];
UIViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:[class1 description]];
if (modify) {
modify(vc);
modify = nil;
}
[nc pushViewController:vc animated:animated];
}
- (UIViewController *)popToViewControllerOfKind:(Class)aClass from:(UINavigationController *)navController {
RESIGN_KEYBOARD
if (aClass) {
NSArray *arrayOfViewControllersInStack = navController.viewControllers;
for (int i = 0; i < arrayOfViewControllersInStack.count; i++) {
if ([[arrayOfViewControllersInStack objectAtIndex:i] isKindOfClass:aClass]) {
int index = (i > 0) ? (i - 1) : i;
[navController popToViewController:[arrayOfViewControllersInStack objectAtIndex:index] animated:NO];
break;
}
}
return [navController topViewController];
}
return nil;
}