http://stackoverflow.com/questions/22421845/ios-app-crash-on-multiple-segue-at-the-same-time-going-to-other-segue-while-o/22928000#22928000
http://stackoverflow.com/questions/19560198/ios-app-error-cant-add-self-as-subview
This solution worked for me and I think it's general practice to add this in the program.
1)
First add BOOL
property to your .h file of your app's appDelegate
@property (nonatomic) BOOL animatingViewControllerTransition;
Also implement the UINavigationControllerDelegate
:
@interface Your_AppDelegate : UIResponder <UIApplicationDelegate, UINavigationControllerDelegate>
Set Your_AppDelegate as UINavigationController's delegate in application:didFinishLaunchingWithOptions:
of your appDelegate:
((UINavigationController *)self.window.rootViewController).delegate = self;
2)
Now Add this UINavigationControllerDelegate method in .m file of your appDelegate:
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
// Push/pop operation is allowed now.
((Your_AppDelegate *)[UIApplication sharedApplication].delegate).animatingViewControllerTransition = NO;
}
3)
Finally Add the following code whenever you are segueing
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
// Don't allow to segue if already one of the view controllers is being animated
BOOL viewControllerIsTransitioning = ((Your_AppDelegate *)[UIApplication sharedApplication].delegate).animatingViewControllerTransition;
if (viewControllerIsTransitioning)
{
return NO;
}
return YES;
}
Hope this will help to one having segue crash problem.