【发布时间】:2017-05-21 11:28:06
【问题描述】:
我使用SWReveal视图控制器创建了侧边菜单结构。我想做的是取消在某些页面上打开右侧视图控制器。我研究并发现了这样的东西:
- (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;
}
这对我有用,但它也影响了左侧页面的打开。触摸动作(点击手势)没有问题,但这适用于平移手势。我的意思是平移手势不适用于我想运行视图控制器。我想为某些视图控制器正常工作,但我不想影响左侧。 我像这样添加了正确的切换:
-(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];
}
此代码需要工作才能打开右侧页面:
[self performSegueWithIdentifier:SWSegueRightIdentifier sender:nil];
我在需要时尝试运行它,但它不起作用。 我正在等待这方面的帮助。谢谢。
【问题讨论】:
标签: ios objective-c swrevealviewcontroller