【问题标题】:Slide down to dismiss presented navigation controller向下滑动以关闭呈现的导航控制器
【发布时间】:2017-09-30 21:20:47
【问题描述】:

我想实现向下滑动交互并关闭视图控制器,为此我提到了this link,但这仅适用于关闭从视图控制器呈现的单个视图控制器。

在我的例子中,我展示了一个导航控制器,因为用户可以从该视图控制器推送到另一个视图,但向下拖动以关闭不适用于导航控制器。

更新:它应该作为 - 从任何屏幕触发向下滑动手势,(例如:从主屏幕或推送屏幕/详细屏幕)导航控制器应该完全关闭。

请建议是否有人遇到过相同的实施情况。

提前致谢。

【问题讨论】:

  • 您需要展示您正在做的事情,以便他人找出遗漏的内容。请分享您的代码
  • 我使用了与问题中链接的链接相同的代码,创建了 ViewControllerPannable 类并使用了它,但它似乎不起作用。
  • 要记住的一点是,模态控制器和导航控制器有不同的dismissing 控制器方式。对于模态控制器,您将使用dismissViewController,而在导航控制器中,您将使用navigationController.popViewController(因为它被推送到导航堆栈中)
  • 我必须实现 - 在向下滑动或平移视图控制器时,它应该关闭整个导航控制器。

标签: ios swift uiviewcontroller uinavigationcontroller


【解决方案1】:

您可以在导航控制器中添加 PanGesture。使用- (CGPoint)velocityInView:(UIView *)view,您将知道在哪个直接用户中平移。如果视图被平移,则相应地管理其约束,如果它超过阈值,则弹出该视图。

【讨论】:

  • @Malik 但它适用于模态演示。这是问题所在。实现起来并不太复杂,所以只提供了一个根据需求实现的选项。
  • 手势识别器不受视图控制器的呈现风格的约束。使用导航控制器代替模态控制器不会使手势识别器无用。
猜你喜欢
  • 2020-05-30
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
  • 2016-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多