diff --git a/README.md b/README.md index 4bd110b7..608a147a 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,9 @@ If you have ideas how to improve this library please let me know or send a pull Changes ----- +**0.9.6** +* Fixed a Position bug when you hide the UINavigationBar with the UINavigationBar hidden property. + **0.9.5** * Fixed warnings * Other little bugfixes diff --git a/TSMessages/Classes/TSMessage.h b/TSMessages/Classes/TSMessage.h index f31454a0..be85aa9b 100755 --- a/TSMessages/Classes/TSMessage.h +++ b/TSMessages/Classes/TSMessage.h @@ -165,4 +165,9 @@ typedef NS_ENUM(NSInteger,TSMessageNotificationDuration) { This depends on the Base SDK and the currently used device */ + (BOOL)iOS7StyleEnabled; +/** Indicates whether the current navigationBar is hidden by isNavigationBarHidden + on the UINavigationController or isHidden on the navigationBar of the current + UINavigationController */ ++ (BOOL)isNavigationBarInNavigationControllerHidden:(UINavigationController *)navController; + @end diff --git a/TSMessages/Classes/TSMessage.m b/TSMessages/Classes/TSMessage.m index d3be3300..a529420d 100755 --- a/TSMessages/Classes/TSMessage.m +++ b/TSMessages/Classes/TSMessage.m @@ -212,9 +212,9 @@ - (void)fadeInCurrentNotification BOOL isViewIsUnderStatusBar = [[[currentNavigationController childViewControllers] firstObject] wantsFullScreenLayout]; if (!isViewIsUnderStatusBar && currentNavigationController.parentViewController == nil) { - isViewIsUnderStatusBar = ![currentNavigationController isNavigationBarHidden]; // strange but true + isViewIsUnderStatusBar = ![TSMessage isNavigationBarInNavigationControllerHidden:currentNavigationController]; // strange but true } - if (![currentNavigationController isNavigationBarHidden]) + if (![TSMessage isNavigationBarInNavigationControllerHidden:currentNavigationController]) { [currentNavigationController.view insertSubview:currentView belowSubview:[currentNavigationController navigationBar]]; @@ -303,6 +303,17 @@ - (void)fadeInCurrentNotification } } ++ (BOOL)isNavigationBarInNavigationControllerHidden:(UINavigationController *)navController +{ + if([navController isNavigationBarHidden]) { + return YES; + } else if ([[navController navigationBar] isHidden]) { + return YES; + } else { + return NO; + } +} + - (void)fadeOutNotification:(TSMessageView *)currentView { currentView.messageIsFullyDisplayed = NO; diff --git a/TSMessages/Views/TSMessageView.m b/TSMessages/Views/TSMessageView.m index 00177ed0..ef6039c2 100755 --- a/TSMessages/Views/TSMessageView.m +++ b/TSMessages/Views/TSMessageView.m @@ -422,7 +422,7 @@ - (CGFloat)updateHeightOfMessageView if (!navigationController && [self.viewController isKindOfClass:[UINavigationController class]]) { navigationController = (UINavigationController *)self.viewController; } - BOOL isNavBarIsHidden = !navigationController || self.viewController.navigationController.navigationBarHidden; + BOOL isNavBarIsHidden = !navigationController || [TSMessage isNavigationBarInNavigationControllerHidden:self.viewController.navigationController]; BOOL isNavBarIsOpaque = !self.viewController.navigationController.navigationBar.isTranslucent && self.viewController.navigationController.navigationBar.alpha == 1; if (isNavBarIsHidden || isNavBarIsOpaque) {