如何将模态视图控制器中的触摸发送到父视图控制器?

时间:2016-01-28 02:21:04

标签: ios objective-c segue uistoryboardsegue uicontainerview

我有一个基本视图控制器VC1和另一个视图控制器VC2,它通过全屏模式呈现(通过VC1)

VC2是半透明的,我想在用户点击或滚动时将所有触摸事件从VC2转发到VC1。 (VC1有几个按钮和一个滚动视图)

我应该使用某种自定义容器吗?如何呈现VC2以覆盖屏幕并将所有触摸转发给VC1?莫代尔是正确答案吗?

我已经尝试将VC1的引用存储为VC2中的变量,并通过touchesbegan将事件传递给VC1但是没有用。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果要将事件传递给不同的视图,则应使用subView而不是VC2。

创建新的UIView * secondView并添加为VC1的子视图。

[self.view addSubView:secondView];

不在VC1中添加以下方法。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
   UIView *hitView = [super hitTest:point withEvent:event];

   // check your condition here, if button is pressed on secondView and you want to pass event on mainview the simply return mainView. This event will be passed to mainView.

   if ([secondView.button isEqual:hitView])
   {

      return self.view;
   }
   else
   {
      return nil;
   }

   return hitView;
 }