iOS 系統(tǒng)的手勢滑動返回跟導(dǎo)航欄的隱藏與否是有關(guān)系的搀菩,同時滑動過程中的動畫也和導(dǎo)航欄是否隱藏有聯(lián)系
- 自定義UINavigationController 繼承自系統(tǒng)的 UINavigationController破托,之后項目中所有需要使用導(dǎo)航控制器的地方都是用自己自定義的導(dǎo)航控制器去初始化
- 自定義的導(dǎo)航控制器的 viewDidLoad 中添加
self.interactivePopGestureRecognizer.delegate = self;
可以保證隱藏了導(dǎo)航欄的控制器也能手勢返回 - 重要的一點土砂,沒有特殊需要的話,任何顯示和隱藏導(dǎo)航欄的操作萝映,都需要在
- (void)viewWillAppear:(BOOL)animated
中使用[self.navigationController setNavigationBarHidden:YES/NO animated:animated];
來執(zhí)行,同時 animated 必須使用 viewWillAppear 中的參數(shù)蚌卤,不得寫死 YES 或者 NO奥秆。 - 通過分類處理后的最佳實踐:https://github.com/victhjy/Navigationbar