如果你使用了UINavigationController+FDFullscreenPopGesture, 没有额外的设置, 并且使用了 MFMessageComposeViewController在APP内使用短信功能.
那么将会出现以下这个情况.
导航栏位置被遮挡
原因是fd使用runtime在每个显示的viewcontroller都默认加了一个bar.
解决方案:
在UINavigationController+FDFullscreenPopGesture.m文件里找到
- (void)fd_setupViewControllerBasedNavigationBarAppearanceIfNeeded:(UIViewController *)appearingViewController
添加以下代码
#import <objc/runtime.h>
NSString *className = [NSString stringWithUTF8String:class_getName([appearingViewController class])];
if ([className isEqualToString:@"CKSMSComposeController"]) {
return;
}
即可解决.
同时还有一个fd_viewControllerBasedNavigationBarAppearanceEnabled属性, 但是设置后无效, 按道理这个属性应该是解决这个问题的,不知什么原因不起作用, 待我以后再翻一翻FD的源码看看到底什么原因.
网友评论