通过点击AND / OR边缘滑动来关闭模态视图控制器

时间:2014-05-06 01:42:07

标签: ios objective-c

我正在开发一款iOS应用程序,其中集成了许多用于导航的手势。 当点击某些项目时,模态视图控制器向上滑动,选择内部选项,并在视图顶部放置一个“完成”按钮以关闭所述模态VC。

“完成”按钮并没有“感觉”正确,因为在整个应用程序中有很多其他基于手势的控件,我想知道是否:任何人都知道(简单)方式我可以整合“从屏幕上边缘轻扫”来解除这种模式吗?

但我不想摆脱'完成'按钮。希望有道理!目前,我的modalVC的* .m文件有:

-(IBAction)doneButtonPressed:(id)sender
{[self dismissViewControllerAnimated:YES completion:nil]; } 

在那里......很简单。点击“完成”按钮也完全有效。此时没有问题

1 个答案:

答案 0 :(得分:7)

您可以使用UISwipeGestureRecognizer来实现此目标。

UISwipeGestureRecognizer *swipeRecognizer = [[UISwipeGestureRecognizer alloc] 
    initWithTarget:self action:@selector(userSwiped:)];

swipeRecognizer.direction = UISwipeGestureRecognizerDirectionDown;

[modalController.view addGestureRecognizer:swipeRecognizer];

//Action method
- (void)userSwiped:(UIGestureRecognizer *)sender
{
   [self dismissViewControllerAnimated:YES completion:nil]; 
}

iOS使用从顶角的滑动来显示通知中心。因此,建议不要将此手势与应用中的任何操作相关联。

以上示例识别模态视图上任何位置的从上到下的滑动并将其解除。