0

我制作了一个自定义的拆分视图控制器,并尝试尽可能地模仿标准的。

我拥有的一项功能是,如果设备处于纵向并显示主视图,如果您点击详细信息视图,主视图将隐藏。

我在详细信息视图中使用此代码来完成此操作。

- (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 方法中忽略对它的点击。

4

0 回答 0