0

カスタム分割ビュー コントローラーを作成し、標準のものを可能な限り模倣しようとしました。

私が持っている機能の 1 つは、デバイスが縦向きでマスター ビューが表示されている場合、詳細ビューをタップすると、マスター ビューが非表示になることです。

これを実現するために、詳細ビューでこのコードを使用します。

- (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 が独自のナビゲーションバーを持つビューで満たされている場合、ナビゲーションバーで押されたボタンが上に表示されている「詳細ビュータップ」メソッドをトリガーすることです。これは、ナビゲーション バー内に配置する [詳細を表示] ボタンを追加することと競合します。基本的に何が起こるかは、マスター ビューを非表示/表示するメソッドが連続して 2 回呼び出されることです。

「詳細の非表示/表示」ボタンの上にあるタップを無視する方法が必要です。ボタンへの参照があります。hitTest / pointsInside メソッド内でのタップを無視する必要があります。

4

0 に答える 0