我制作了一个自定义拆分视图控制器,我尽可能地尝试模仿标准控制器。
我拥有的一项功能是,如果设备处于纵向状态且显示主视图,则点击详细信息视图时,主视图将隐藏。
我在详细信息视图中使用此代码来完成此任务。
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
return [super hitTest:point withEvent:event];
}
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
// Detect touches on the details View and notify the Split View controller
if(point.y != self.touchLocation.y)
{
if (_delegate && [_delegate respondsToSelector:@selector(detailsViewDidTapDetails:)])
[_delegate detailsViewDidTapDetails:self];
}
return [super pointInside:point withEvent:event];
}
我遇到的问题是,如果detailsView填充了具有自己导航栏的视图,则导航栏中按下的任何按钮都会触发上面显示的“详细信息视图点击”方法。这与添加放置在导航栏中的“显示详细信息”按钮有冲突。基本上发生了什么,隐藏/显示主视图的方法是两次背靠背调用。
我需要一种方法来忽略我的“隐藏/显示详细信息”按钮上的任何点按。我有一个按钮的引用,我只需要在我的hitTest / pointsInside方法中忽略它的点击。