我正在使用SWRevealViewController来实现我的应用程序中的侧导航菜单.我想使它使得当后视图打开时,前视图不能与之互动,除非用户点击前视图,后视图将关闭,并且前视图可以再次进行交互.我有这两个SWRevealViewController委托方法,目前从前视图中删除交互.
- (void)revealController:(SWRevealViewController *)revealController willMovetoPosition: (FrontViewPosition)position {
if(position == FrontViewPositionLeft) {
self.view.userInteractionEnabled = YES;
} else {
self.view.userInteractionEnabled = NO;
}
}
- (void)revealController:(SWRevealViewController *)revealController didMovetoPosition: (FrontViewPosition)position {
if(position == FrontViewPositionLeft) {
self.view.userInteractionEnabled = YES;
} else {
self.view.userInteractionEnabled = NO;
}
}
但是,当前视图被轻拍时,这并不会导致后视图关闭.任何帮助将不胜感激,谢谢!
解决方法
如果您使用SWIFT,您可以在frontViewController中执行此操作:
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
self.view.addGestureRecognizer(self.revealViewController().tapGestureRecognizer())
}
}
代码适用于TAP和PAN手势.