From 0c67061f01c0fad4be36379a734c269b38fc2837 Mon Sep 17 00:00:00 2001 From: Ilya Grechuhin Date: Wed, 22 Mar 2017 12:41:37 +0300 Subject: [PATCH] [MAPSME-4113] [ios] Fixed 3d touch actions. --- iphone/Maps/Classes/MapViewController.mm | 25 ++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index 428556ee06..dd03d987ff 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -493,14 +493,23 @@ BOOL gIsFirstMyPositionMode = YES; - (void)performAction:(NSString *)action { [self.navigationController popToRootViewControllerAnimated:NO]; - self.controlsManager.searchHidden = YES; - [MWMRouter stopRouting]; - if ([action isEqualToString:@"me.maps.3daction.bookmarks"]) - [self openBookmarks]; - else if ([action isEqualToString:@"me.maps.3daction.search"]) - self.controlsManager.searchHidden = NO; - else if ([action isEqualToString:@"me.maps.3daction.route"]) - [self.controlsManager onRoutePrepare]; + if (self.isViewLoaded) + { + self.controlsManager.searchHidden = YES; + [MWMRouter stopRouting]; + if ([action isEqualToString:@"me.maps.3daction.bookmarks"]) + [self openBookmarks]; + else if ([action isEqualToString:@"me.maps.3daction.search"]) + self.controlsManager.searchHidden = NO; + else if ([action isEqualToString:@"me.maps.3daction.route"]) + [self.controlsManager onRoutePrepare]; + } + else + { + dispatch_async(dispatch_get_main_queue(), ^{ + [self performAction:action]; + }); + } } #pragma mark - API bar