我正在使用SWRevealViewController插件,它工作得很好,我可以在页面周围很好地导航。我的问题是,当显示菜单时,您仍然可以与调用菜单的视图上的对象进行交互。我想在菜单显示时禁用我视图中的按钮。我正在使用此代码分配侧边栏按钮。
_sidebarButton.tintColor = [UIColor colorWithWhite:0.1f alpha:0.9f];
_sidebarButton.target = self.revealViewController;
_sidebarButton.tag=10;
_sidebarButton.action = @selector(revealToggle:);
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
在触发revealToggle操作之前,我无法解决如何在我自己的类中调用函数的问题。有什么建议吗?
答案 0 :(得分:0)
在MenuViewController(后视图控制器)中写下以下内容:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.revealViewController.frontViewController.view setUserInteractionEnabled:NO];
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[self.revealViewController.frontViewController.view setUserInteractionEnabled:YES];
}
然后您可以从此viewcontroller获取每个子视图。
例如,如果frontviewcontroller是UINavigationController
,你可以这样做:
UINavigationController *navController = (UINavigationController *)self.revealViewController.frontViewController;
UIViewController *rootViewController = [navController.viewControllers firstObject];
NSArray *allViews = [NSArray arrayWithArray:(NSArray *)[rootViewController.view subviews]];