diff options
author | v.mikhaylenko <v.mikhaylenko@corp.mail.ru> | 2015-06-16 20:21:32 +0300 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 02:52:40 +0300 |
commit | 4e8f1cc18f1a594e5cd35a7ee85937939ac3a4f2 (patch) | |
tree | 878b831909555983c98433dd0435e02b10b1787c /iphone/Maps/Classes/MWMBookmarkDescriptionViewController.mm | |
parent | 00c153b50ff6c92c312fb9fdc7662df4eef54388 (diff) |
[ios] Added safety interface for work with metadata dictionary.
Diffstat (limited to 'iphone/Maps/Classes/MWMBookmarkDescriptionViewController.mm')
-rw-r--r-- | iphone/Maps/Classes/MWMBookmarkDescriptionViewController.mm | 52 |
1 files changed, 29 insertions, 23 deletions
diff --git a/iphone/Maps/Classes/MWMBookmarkDescriptionViewController.mm b/iphone/Maps/Classes/MWMBookmarkDescriptionViewController.mm index e61332069f..a47407bcb6 100644 --- a/iphone/Maps/Classes/MWMBookmarkDescriptionViewController.mm +++ b/iphone/Maps/Classes/MWMBookmarkDescriptionViewController.mm @@ -21,7 +21,7 @@ typedef NS_ENUM(NSUInteger, BookmarkDescriptionState) BookmarkDescriptionStateEditHTML }; -@interface MWMBookmarkDescriptionViewController () +@interface MWMBookmarkDescriptionViewController () <UIWebViewDelegate> @property (weak, nonatomic) IBOutlet UITextView * textView; @property (weak, nonatomic) IBOutlet UIWebView * webView; @@ -50,7 +50,7 @@ typedef NS_ENUM(NSUInteger, BookmarkDescriptionState) - (void)viewDidLoad { [super viewDidLoad]; - [self.ownerNavigationController setNavigationBarHidden:NO]; + [self.iPadOwnerNavigationController setNavigationBarHidden:NO]; self.navigationItem.title = L(@"description"); MWMPlacePageEntity const * entity = self.manager.entity; @@ -62,23 +62,22 @@ typedef NS_ENUM(NSUInteger, BookmarkDescriptionState) - (void)viewWillAppear:(BOOL)animated { - if (!self.ownerNavigationController) + if (!self.iPadOwnerNavigationController) return; - self.realPlacePageHeight = self.ownerNavigationController.view.height; + self.realPlacePageHeight = self.iPadOwnerNavigationController.view.height; CGFloat const bottomOffset = 88.; - self.ownerNavigationController.view.height = self.textView.height + bottomOffset; + self.iPadOwnerNavigationController.view.height = self.textView.height + bottomOffset; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; - if (!self.ownerNavigationController) - return; + if (!self.iPadOwnerNavigationController) + return; - self.ownerNavigationController.navigationBar.hidden = YES; - [self.ownerNavigationController setNavigationBarHidden:YES]; - self.ownerNavigationController.view.height = self.realPlacePageHeight; + [self.iPadOwnerNavigationController setNavigationBarHidden:YES]; + self.iPadOwnerNavigationController.view.height = self.realPlacePageHeight; } - (void)setState:(BookmarkDescriptionState)state @@ -89,16 +88,11 @@ typedef NS_ENUM(NSUInteger, BookmarkDescriptionState) { case BookmarkDescriptionStateEditText: case BookmarkDescriptionStateEditHTML: - [self setupForEditingWithText:description]; - [self configureNavigationBarForEditing]; - break; case BookmarkDescriptionStateViewHTML: - [self setupForViewWithText:description]; - [self configureNavigationBarForView]; break; } _state = state; @@ -115,6 +109,7 @@ typedef NS_ENUM(NSUInteger, BookmarkDescriptionState) { self.textView.text = text; }]; + [self configureNavigationBarForEditing]; } - (void)setupForViewWithText:(NSString *)text @@ -128,19 +123,20 @@ typedef NS_ENUM(NSUInteger, BookmarkDescriptionState) { [self.webView loadHTMLString:text baseURL:nil]; }]; + [self configureNavigationBarForView]; } - (void)configureNavigationBarForEditing { - self.leftButton = [[UIBarButtonItem alloc] initWithTitle:L(@"cancel") style:UIBarButtonItemStylePlain target:self action:@selector(cancelTap:)]; - self.rightButton = [[UIBarButtonItem alloc] initWithTitle:L(@"done") style:UIBarButtonItemStylePlain target:self action:@selector(doneTap:)]; + self.leftButton = [[UIBarButtonItem alloc] initWithTitle:L(@"cancel") style:UIBarButtonItemStylePlain target:self action:@selector(cancelTap)]; + self.rightButton = [[UIBarButtonItem alloc] initWithTitle:L(@"done") style:UIBarButtonItemStylePlain target:self action:@selector(doneTap)]; [self setupButtons]; } - (void)configureNavigationBarForView { - self.leftButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"NavigationBarBackButton"] style:UIBarButtonItemStylePlain target:self action:@selector(backTap:)]; - self.rightButton = [[UIBarButtonItem alloc] initWithTitle:L(@"edit") style:UIBarButtonItemStylePlain target:self action:@selector(editTap:)]; + self.leftButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"NavigationBarBackButton"] style:UIBarButtonItemStylePlain target:self action:@selector(backTap)]; + self.rightButton = [[UIBarButtonItem alloc] initWithTitle:L(@"edit") style:UIBarButtonItemStylePlain target:self action:@selector(editTap)]; [self setupButtons]; } @@ -150,7 +146,7 @@ typedef NS_ENUM(NSUInteger, BookmarkDescriptionState) [self.navigationItem setRightBarButtonItem:self.rightButton]; } -- (void)cancelTap:(id)sender +- (void)cancelTap { if (self.manager.entity.isHTMLDescription) self.state = BookmarkDescriptionStateViewHTML; @@ -158,7 +154,7 @@ typedef NS_ENUM(NSUInteger, BookmarkDescriptionState) [self.navigationController popViewControllerAnimated:YES]; } -- (void)doneTap:(id)sender +- (void)doneTap { MWMPlacePageEntity * entity = self.manager.entity; entity.bookmarkDescription = self.textView.text; @@ -171,14 +167,24 @@ typedef NS_ENUM(NSUInteger, BookmarkDescriptionState) [self.navigationController popViewControllerAnimated:YES]; } -- (void)backTap:(id)sender +- (void)backTap { [self.navigationController popViewControllerAnimated:YES]; } -- (void)editTap:(id)sender +- (void)editTap { self.state = BookmarkDescriptionStateEditHTML; } +- (BOOL)webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType +{ + if (inType == UIWebViewNavigationTypeLinkClicked) + { + [[UIApplication sharedApplication] openURL:[inRequest URL]]; + return NO; + } + return YES; +} + @end |