一个 UINavigationController 的类别,用于在 iOS7+ 系统风格中使用 AOP 启用全屏弹出手势。
这个扩展来自 @J_雨 同学的这个很天才的思路,他的文章地址:http://www.jianshu.com/p/d39f7d22db6c
AOP,只需添加 2 个文件,无需任何设置,所有导航控制器都将能够自动使用全屏弹出手势。
要禁用导航控制器的此弹出手势:
navigationController.fd_fullscreenPopGestureRecognizer.enabled = NO;
要禁用视图控制器的此弹出手势:
viewController.fd_interactivePopDisabled = YES;
需要至少 iOS 7.0。
它在使用全屏手势推或弹出视图控制器时,适当处理导航栏切换
此优化默认启用,从此以后您不需要调用 UINavigationController 的 -setNavigationBarHidden:animated:
方法,而是使用视图控制器的特定 API 来隐藏其栏
- (void)viewDidLoad {
[super viewDidLoad];
self.fd_prefersNavigationBarHidden = NO;
}
并且这个属性默认为 YES。
使用 cocoapods
pod 'FDFullscreenPopGesture', '1.1'
1.1 - 基于视图控制器的导航栏外观和过渡。
1.0 - 全屏弹出手势。
MIT