最近需要给APP添加手势左滑返回功能,使用了框架FDFullscreenPopGesture,把使用过程中遇到的坑以及解决方法记录下
一、UIWebView无法左滑返回
原因:UIWebView默认是不开启左滑手势返回功能的,需要自己开启;
解决:在viewDidLoad方法里面设置属性fd_interactivePopDisabled为NO;
- (void)viewDidLoad
{
[super viewDidLoad];
self.fd_interactivePopDisabled = NO;
}
二、UIWebView左滑返回没有成功时或者取消返回时导航栏的title文字为空,不见了
原因:在viewWillDisappear:方法里面UIWebView控件被销毁了;
ScanWebView = nil;
解决:
方法一: 最直接有效
在viewWillDisappear方法里面取消UIWebView控件的销毁;即把这行代码注释掉;ScanWebView = nil;//注释掉
方法二: 比较复杂
在webViewDidFinishLoad方法里面用一个变量保存获取的title文字,在viewWillAppear方法里面设置导航栏的title文字;
1、保存title文字的变量
@property (nonatomic, copy) NSString *titleString; //保存title文字的变量
2、设置导航栏的title文字
- (void)viewWillAppear:(BOOL)animated{ //设置导航栏的title文字
[super viewWillAppear:animated];
self.titleLabel.text = self.titleString;
}
3、用变量保存获取到的title文字
- (void)webViewDidFinishLoad:(UIWebView *)webView{ //用变量保存获取到的title文字
NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
self.titleString = title;
}
三、左滑返回没有成功或者取消时,会出现 … 的情况
原因:导航控制器的导航栏默认是有一个返回按钮的;设置属性hidesBackButton为YES就会出现这种情况;
解决:设置属性hidesBackButton为NO,或者直接注释掉这行代码,不进行设置;
self.navigationItem.hidesBackButton = NO;
四、从无NavigationBar到有NavigationBar,手势返回的时候,有NavigationBar的控制器导航栏会变成白色,或者消失不见了;
原因:在滑动的时候显示出错