我有一个基本视图控制器VC1和另一个视图控制器VC2,它通过全屏模式呈现(通过VC1)
VC2是半透明的,我想在用户点击或滚动时将所有触摸事件从VC2转发到VC1。 (VC1有几个按钮和一个滚动视图)
我应该使用某种自定义容器吗?如何呈现VC2以覆盖屏幕并将所有触摸转发给VC1?莫代尔是正确答案吗?
我已经尝试将VC1的引用存储为VC2中的变量,并通过touchesbegan将事件传递给VC1但是没有用。
谢谢。
答案 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;
}