【问题标题】:removing childviewcontroller disables gestures in parentviewcontroller when the parentviewcontroller is re-presented重新呈现 parentviewcontroller 时,删除 childviewcontroller 会禁用 parentviewcontroller 中的手势
【发布时间】:2014-07-17 03:04:40
【问题描述】:

在 iOS 中,当我添加 childviewcontroller,然后将其删除 - 所有重叠的手势都已被禁用。

例如,父视图控制器具有“longtap”手势,子视图控制器具有“longtap”手势。

父视图长按手势有效。

然后我添加childviewcontroller 并且VCs longtap 手势有效。

然后我调用 removeFromParentViewController

用于响应长按手势的原始视图控制器视图已禁用其手势。

(我可以循环浏览所有手势并再次“启用”它们 - 我的问题是为什么当我添加然后删除 childviewcontroller 时 longtap 手势会被禁用 - 我正在做所有标准,即。

[_parentVC                 addChildViewController:alertVC];
[_parentVC                 willMoveToParentViewController:alertVC];
[_parentVC.view addSubview:alertVC.view];

然后

 [alertVC.view removeFromSuperview];
 [alertVC removeFromParentViewController];
 [alertVC willMoveToParentViewController:_parentVC];

【问题讨论】:

  • 你在哪里定义你的手势??
  • 每个视图控制器都有自己的带有 UILongPressGestureRecognizer 的 nib,每个视图控制器的 .h 文件都有一个连接到它们的手势的 IBAction。 AlertViewController 的签名是 -(IBAction) handleLongPressToCloseAlertView:(UITapGestureRecognizer*) 识别器;并且父视图控制器的签名是: - (IBAction)handleLongPress:(UILongPressGestureRecognizer*) 识别器;

标签: ios uiviewcontroller childviewcontroller


【解决方案1】:

哇。 这里有很多代码。 看起来手势在事件发生后被手动禁用。所以被禁用的手势与添加 childviewcontrollers 无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多