Ios 使用导航项向下滑动手势

Ios 使用导航项向下滑动手势,ios,objective-c,menu,navigation,swipe,Ios,Objective C,Menu,Navigation,Swipe,嗨,我想用向下滑动的手势导航回主菜单。问题是我使用的导航项来自导航控制器,因此无法检测到向下滑动。我该如何解决这个问题 - (void)viewDidLoad { [super viewDidLoad]; UIScreenEdgePanGestureRecognizer *bezelSwipeGestureRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@sele

嗨,我想用向下滑动的手势导航回主菜单。问题是我使用的导航项来自导航控制器,因此无法检测到向下滑动。我该如何解决这个问题

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIScreenEdgePanGestureRecognizer *bezelSwipeGestureRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(swipeBack:)];
    bezelSwipeGestureRecognizer.edges = UIRectEdgeTop;
    bezelSwipeGestureRecognizer.delegate = self;
    [self.view addGestureRecognizer:bezelSwipeGestureRecognizer];

    UIView *invisibleScrollPreventer = [UIView new];
    invisibleScrollPreventer.frame = CGRectMake(0, 0, self.view.frame.size.width, 100);
    [self.view addSubview:invisibleScrollPreventer];

}

-(void)swipeBack:(UIScreenEdgePanGestureRecognizer *)recognizer
{
    if (recognizer.state == UIGestureRecognizerStateEnded) {
        NSLog(@"Top Swipe");

        [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];

    }
}
谢谢大家!

试试这个

-(void)swipeBack:(UIScreenEdgePanGestureRecognizer *)recognizer
{
    if (recognizer.state == UIGestureRecognizerStateEnded)
    {
        NSLog(@"Top Swipe");

        [self.navigationController popViewControllerAnimated:YES];


    }
}

首先,为手势识别器创建一个出口:

@IBOutlet var swipeDownGestureRecognizer: UISwipeGestureRecognizer!
其次,将识别器添加到导航栏:

navigationController?.navigationBar.addGestureRecognizer(swipeDownGestureRecognizer)

对不起,我没有把我的问题说清楚。基本上,我的问题是,我目前使用的刷卡甚至没有得到注册!我使用的代码在ViewController上运行得非常好,只是不适用于带有NavigationItems的UITableView。