最近需要給APP添加手勢(shì)左滑返回功能,使用了框架FDFullscreenPopGesture,把使用過程中遇到的坑以及解決方法記錄下
一、UIWebView無法左滑返回
原因:UIWebView默認(rèn)是不開啟左滑手勢(shì)返回功能的,需要自己開啟;
解決:在viewDidLoad方法里面設(shè)置屬性fd_interactivePopDisabled為NO;
- (void)viewDidLoad
{
[super viewDidLoad];
self.fd_interactivePopDisabled = NO;
}
二、UIWebView左滑返回沒有成功時(shí)或者取消返回時(shí)導(dǎo)航欄的title文字為空,不見了
原因:在viewWillDisappear:方法里面UIWebView控件被銷毀了;
ScanWebView = nil;
解決:
方法一: 最直接有效
在viewWillDisappear方法里面取消UIWebView控件的銷毀;即把這行代碼注釋掉;ScanWebView = nil;//注釋掉
方法二: 比較復(fù)雜
在webViewDidFinishLoad方法里面用一個(gè)變量保存獲取的title文字,在viewWillAppear方法里面設(shè)置導(dǎo)航欄的title文字;
1、保存title文字的變量
@property (nonatomic, copy) NSString *titleString; //保存title文字的變量
2、設(shè)置導(dǎo)航欄的title文字
- (void)viewWillAppear:(BOOL)animated{ //設(shè)置導(dǎo)航欄的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;
}
三、左滑返回沒有成功或者取消時(shí),會(huì)出現(xiàn) … 的情況
原因:導(dǎo)航控制器的導(dǎo)航欄默認(rèn)是有一個(gè)返回按鈕的;設(shè)置屬性hidesBackButton為YES就會(huì)出現(xiàn)這種情況;
解決:設(shè)置屬性hidesBackButton為NO,或者直接注釋掉這行代碼,不進(jìn)行設(shè)置;
self.navigationItem.hidesBackButton = NO;
四、從無NavigationBar到有NavigationBar,手勢(shì)返回的時(shí)候,有NavigationBar的控制器導(dǎo)航欄會(huì)變成白色,或者消失不見了;
原因:在滑動(dòng)的時(shí)候顯示出錯(cuò)