2017-01-06 7 views
0

SWRevealビューコントローラを使用してサイドメニュー構造を作成しました。私がやりたいことは、一部のページで右側のビューコントローラのオープンをキャンセルすることです。私はこれを調べて、SWRevealViewController rightViewControllerオープニングを無効にする

- (BOOL)revealControllerPanGestureShouldBegin:(SWRevealViewController *)revealController 

    if([revealController.frontViewController isKindOfClass:[UINavigationController class]]){ 

    UINavigationController *navController = (UINavigationController *)revealController.frontViewController; 

    UIViewController *lastViewController = navController.viewControllers.lastObject; 

    if([lastViewController isKindOfClass:[DetailViewController class]] || 
     [lastViewController isKindOfClass:[TableDateViewController class]] || 
     [lastViewController isKindOfClass:[MapViewController class]]) 
    { 
     return NO; // I do not want to open it for the view controllers I want 
    } 
} 
    return YES; 
} 

これは私のために働いたが、それはまた左page.Thereの開口部に影響を与えたが、タッチアクション(タップジェスチャー)で問題ありませんが、これはgesture.Iパンジェスチャーはどういう意味パンに適用されます実行したいビューコントローラでは機能しません。一部のビューコントローラで正しく動作したいのですが、左側には影響したくありません。 私はこのような権利トグル追加:私はそれを望んでいたとき、私はそれを実行しようとしたが、それはなかった

[self performSegueWithIdentifier:SWSegueRightIdentifier sender:nil]; 

-(void)sideRightMenuLoad{ 
[((PersonelViewController *)[self.navigationController.viewControllers objectAtIndex:0]).view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; 

SWRevealViewController *revealViewController = self.revealViewController; 
if(revealViewController){ 
    [self.sideRightBarButton setTarget:self.revealViewController]; 
    [self.sideRightBarButton setAction:@selector(rightRevealToggle:)]; 
    [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; 


} 

このコードは、右側のページを開くために動作する必要が作業。 私はこの点で助けを待っています。ありがとうございます。あなたはパンジェスチャーの方向性を確認する必要があり

答えて

0

- (BOOL)revealControllerPanGestureShouldBegin:(SWRevealViewController *)revealController { 
if ([revealController.panGestureRecognizer velocityInView:revealController.view].x < 0) { 
    // pan direction left, should open right side 
    // ... 
    return NO; 
} 
return YES; 

}

+0

ありがとう!これは私のために働いた:) –

関連する問題