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 @@
-
+