如何为 UINavigationController 启用全屏平移
Posted
技术标签:
【中文标题】如何为 UINavigationController 启用全屏平移【英文标题】:How to enable full screen Pan back for UINavigationController 【发布时间】:2016-02-16 08:32:29 【问题描述】:从 ios7 开始,苹果提供了一种平移 UINavigationController 的方法,但只能通过从屏幕边缘滑动来完成。如何启用全屏平移后退手势?
【问题讨论】:
您也可以使用object directory
中的Screen Edge Pan Gesture Recognizer
来实现这一目标..!!
@Sneha ScreenEdgePanGesture只能从边缘滑动,如果要从中间平移怎么处理?
对不起,我误会了,您可以使用简单的Swipe Gesture Recognizer
...
【参考方案1】:
我真的花了很多时间试图解决这个问题,最后我找到了方法。我只是提出一个问题并自己回答以在这里分享解决方案。
请参考我的博客以获取更多详细信息enter link description here
演示代码:
#import "TestNavigationController.h"
@interface _UINavigationInteractiveTransition
@end
@interface UINavigationController(Custom)
@property (strong, nonatomic) _UINavigationInteractiveTransition * _cachedInteractionController;
@end
@implementation TestNavigationController
UIPanGestureRecognizer *_p;
- (void)viewDidLoad
[super viewDidLoad];
NSLog(@"%@", self.interactivePopGestureRecognizer
);
_p = [[UIPanGestureRecognizer alloc]initWithTarget:self._cachedInteractionController action:@selector(handleNavigationTransition:)];
NSLog(@"%@", self._cachedInteractionController);
[self.view addGestureRecognizer:_p];
@end
编辑说明: 这会暴露私有 API。
【讨论】:
我认为这会暴露私有 API以上是关于如何为 UINavigationController 启用全屏平移的主要内容,如果未能解决你的问题,请参考以下文章
如何为 RecyclerView 设置 onItemClickListener? [复制]