diff --git a/MasterPassword/ObjC/iOS/MPCombinedViewController.m b/MasterPassword/ObjC/iOS/MPCombinedViewController.m index ee7fdf0f..69b55f18 100644 --- a/MasterPassword/ObjC/iOS/MPCombinedViewController.m +++ b/MasterPassword/ObjC/iOS/MPCombinedViewController.m @@ -98,7 +98,7 @@ - (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)fromViewController identifier:(NSString *)identifier { - if ([identifier isEqualToString:@"emergency"]) { + if ([identifier isEqualToString:@"unwind-emergency"]) { MPEmergencySegue *segue = [[MPEmergencySegue alloc] initWithIdentifier:identifier source:fromViewController destination:toViewController]; segue.unwind = YES; diff --git a/MasterPassword/ObjC/iOS/MPEmergencyViewController.m b/MasterPassword/ObjC/iOS/MPEmergencyViewController.m index 48cbe777..187bfa5f 100644 --- a/MasterPassword/ObjC/iOS/MPEmergencyViewController.m +++ b/MasterPassword/ObjC/iOS/MPEmergencyViewController.m @@ -23,6 +23,7 @@ MPKey *_key; NSOperationQueue *_emergencyKeyQueue; NSOperationQueue *_emergencyPasswordQueue; + NSArray *_notificationObservers; } - (void)viewDidLoad { @@ -41,12 +42,14 @@ [super viewWillAppear:animated]; [self reset]; + [self registerObservers]; } - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; + [self removeObservers]; [self reset]; } @@ -172,4 +175,28 @@ [self updateKey]; } +- (void)registerObservers { + + if ([_notificationObservers count]) + return; + + Weakify(self); + _notificationObservers = @[ + [[NSNotificationCenter defaultCenter] + addObserverForName:UIApplicationWillResignActiveNotification object:nil + queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + Strongify(self); + + [self performSegueWithIdentifier:@"unwind-emergency" sender:self]; + }], + ]; +} + +- (void)removeObservers { + + for (id observer in _notificationObservers) + [[NSNotificationCenter defaultCenter] removeObserver:observer]; + _notificationObservers = nil; +} + @end diff --git a/MasterPassword/ObjC/iOS/Storyboard.storyboard b/MasterPassword/ObjC/iOS/Storyboard.storyboard index af00c46e..fa09df39 100644 --- a/MasterPassword/ObjC/iOS/Storyboard.storyboard +++ b/MasterPassword/ObjC/iOS/Storyboard.storyboard @@ -949,7 +949,7 @@ - + @@ -1060,7 +1060,7 @@ - +