【问题标题】:iPad - PageViewController - Show next view controller on button clickiPad - PageViewController - 单击按钮时显示下一个视图控制器
【发布时间】:2011-10-27 13:05:51
【问题描述】:


我在我的应用程序中使用 UIPageViewController 来显示所有类似于一本书的图像。它工作正常。
我现在想做什么:
我想在左上角放置一个按钮,点击它会显示一个弹出视图控制器,它有一个包含 7 个单元格的表格视图。每个单元格将显示不同的 URL。单击表格单元格时,它将推送一个带有 Web 视图的视图控制器。

有什么问题 问题是我将按钮放在左上角并创建了一个 segue 来显示弹出框。但是在点击按钮时它会转到上一页,在下一次点击时它最终会到达第 1 页。然后在第 1 页中,它将显示弹出窗口。我不明白为什么会这样。

即使在显示弹出框之后,它也不会显示网站的下一个视图。

怎么做?

【问题讨论】:

标签: ipad


【解决方案1】:

诀窍在于 UIPageViewController 的手势识别器接管了该区域。特别是点击处理程序;所以你的按钮只有在点击识别器不认为它意味着去上一页时才会被点击。

最快的解决方案是将自己设置为其识别器的代表

for (UIGestureRecognizer *recognizer in pageViewController.gestureRecognizers)
  recognizer.delegate = self;

然后实现委托,告诉他们让控件接触

- (BOOL)gestureRecognizer:(UIGestureRecognizer *) __unused gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
   if ([touch.view isKindOfClass:[UIControl class]])
      return NO;
   return YES;
}

这应该对你很好。

【讨论】:

  • 感谢您,我遇到了类似的问题,但并不完全相同。我想要识别 Pan 手势而不是点击。因此,我在 for in 循环中添加了另一个检查,该检查检查了点击识别器并设置了该委托。所以滑动仍然有效,我在其他地方处理水龙头。所以这也解决了我的问题!
猜你喜欢
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-05
相关资源
最近更新 更多