使用FDFullscreenPopGesture遇到的坑以及解決方法

最近需要給APP添加手勢左滑返回功能,使用了框架FDFullscreenPopGesture张遭,把使用過程中遇到的坑以及解決方法記錄下

2018-05-03 更新------

當(dāng)使用相機(jī)進(jìn)行拍攝的時(shí)候悠瞬,頁面的上方看不見了陕凹,閃光燈功能使用不了萝映,所以添加了如下判斷:

    // 設(shè)置導(dǎo)航的顯示/隱藏
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(CGFLOAT_MIN * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        UIViewController *vc = [self.navigationController.viewControllers lastObject];
        // 添加對(duì)相機(jī)拍攝的過濾
        if ([self.navigationController isKindOfClass:[UIImagePickerController class]]
            ) {
            UIImagePickerController *imagePickVC = (UIImagePickerController *)self.navigationController;
            // 不是相機(jī)才進(jìn)行處理
            if (imagePickVC.sourceType != UIImagePickerControllerSourceTypeCamera) {
                [self _handleVCNavigationBarHidden:vc];
            }
        } else {
            // 不是相機(jī)才進(jìn)行處理
            [self _handleVCNavigationBarHidden:vc];
        }
    });

- (void)_handleVCNavigationBarHidden:(UIViewController *)vc {
    [self.navigationController setNavigationBarHidden:vc.fd_prefersNavigationBarHidden animated:NO];
}

一望忆、UIWebView無法左滑返回

原因:UIWebView默認(rèn)是不開啟左滑手勢返回功能的罩阵,需要自己開啟;
解決:在viewDidLoad方法里面設(shè)置屬性fd_interactivePopDisabledNO;

- (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è)置屬性hidesBackButtonYES就會(huì)出現(xiàn)這種情況浆劲;

解決:設(shè)置屬性hidesBackButtonNO嫌术,或者直接注釋掉這行代碼,不進(jìn)行設(shè)置牌借;

self.navigationItem.hidesBackButton = NO;

四蛉威、從無NavigationBar到有NavigationBar,手勢返回的時(shí)候走哺,有NavigationBar的控制器導(dǎo)航欄會(huì)變成白色蚯嫌,或者消失不見了;

原因:在滑動(dòng)的時(shí)候顯示出錯(cuò)

解決:
viewWillAppear:viewWillDisappear:方法里面添加對(duì)是否隱藏NavigationBar的判斷丙躏;

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(CGFLOAT_MIN * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    UIViewController *vc = [self.navigationController.viewControllers lastObject];
    if (vc.fd_prefersNavigationBarHidden) {
        [self.navigationController setNavigationBarHidden:YES animated:NO];
    } else {
        [self.navigationController setNavigationBarHidden:NO animated:NO];
    }
});

五择示、調(diào)用系統(tǒng)的發(fā)送短信控制器MFMessageComposeViewController時(shí)(如使用shareSDK進(jìn)行短信分享時(shí)),右上角沒有“取消按鈕”晒旅,無法返回app

原因:好像被擋住了

解決:添加對(duì)控制器是否是MFMessageComposeViewController的判斷栅盲,是的話添加自己添加一個(gè)取消按鈕并添加方法的實(shí)現(xiàn),

if ([self isKindOfClass:[MFMessageComposeViewController class]]) {
    [self fd_pushViewController:viewController animated:animated];
    [[self.viewControllers lastObject] navigationItem].rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(dismissModal:)];
    return;
}
- (void)dismissModal:(UIButton *)sender{
    [[self.viewControllers lastObject] dismissViewControllerAnimated:YES completion:nil];
}

以上為使用過程遇到的坑以及解決辦法废恋,很多也都是從GitHub搜集而來的谈秫,建議多到GitHub去看看;

附上FDFullscreenPopGestureGitHub鏈接鱼鼓;

最后貼上在FDFullscreenPopGesture基礎(chǔ)上修改后的代碼:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拟烫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子迄本,更是在濱河造成了極大的恐慌硕淑,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,207評(píng)論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘉赎,死亡現(xiàn)場離奇詭異置媳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)公条,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門拇囊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人靶橱,你說我怎么就攤上這事寥袭÷放酰” “怎么了?”我有些...
    開封第一講書人閱讀 170,031評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵纠永,是天一觀的道長鬓长。 經(jīng)常有香客問我,道長尝江,這世上最難降的妖魔是什么涉波? 我笑而不...
    開封第一講書人閱讀 60,334評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮炭序,結(jié)果婚禮上啤覆,老公的妹妹穿的比我還像新娘。我一直安慰自己惭聂,他們只是感情好窗声,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,322評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辜纲,像睡著了一般笨觅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耕腾,一...
    開封第一講書人閱讀 52,895評(píng)論 1 314
  • 那天见剩,我揣著相機(jī)與錄音,去河邊找鬼扫俺。 笑死苍苞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的狼纬。 我是一名探鬼主播羹呵,決...
    沈念sama閱讀 41,300評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疗琉!你這毒婦竟也來了冈欢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,264評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤没炒,失蹤者是張志新(化名)和其女友劉穎涛癌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體送火,經(jīng)...
    沈念sama閱讀 46,784評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,870評(píng)論 3 343
  • 正文 我和宋清朗相戀三年先匪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了种吸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,989評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡呀非,死狀恐怖坚俗,靈堂內(nèi)的尸體忽然破棺而出镜盯,到底是詐尸還是另有隱情,我是刑警寧澤猖败,帶...
    沈念sama閱讀 36,649評(píng)論 5 351
  • 正文 年R本政府宣布速缆,位于F島的核電站,受9級(jí)特大地震影響恩闻,放射性物質(zhì)發(fā)生泄漏艺糜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,331評(píng)論 3 336
  • 文/蒙蒙 一幢尚、第九天 我趴在偏房一處隱蔽的房頂上張望破停。 院中可真熱鬧,春花似錦尉剩、人聲如沸真慢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽黑界。三九已至,卻和暖如春皂林,著一層夾襖步出監(jiān)牢的瞬間朗鸠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評(píng)論 1 275
  • 我被黑心中介騙來泰國打工式撼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留童社,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,452評(píng)論 3 379
  • 正文 我出身青樓著隆,卻偏偏與公主長得像扰楼,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子美浦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,995評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容