完美解决RESideMenu二级界面能侧滑的bug(即在二级页面
1.问题描述:
最近项目中有使用RESideMenu侧滑框架,项目需求是这样的:在首页上侧滑可以出现侧滑菜单,而在从首页进入的二级页面,侧滑应该pop回上级页面,如图1。

但是问题来了,使用了RESideMenu框架后,在二级页面侧滑也会出现侧滑菜单,如图2。

2.解决过程
解决方法是用的@icetime17的,只是代码放的位置不太一样,他的RootViewController是继承自RESideMenu的,而我是自己写了个RESideMenu的分类进行设置的。
关键代码就👇几句:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(disableRESideMenu) name:@"disableRESideMenu" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enableRESideMenu) name:@"enableRESideMenu" object:nil];
}
- (void)enableRESideMenu
{ self.panGestureEnabled = YES;}
- (void)disableRESideMenu
{ self.panGestureEnabled = NO;}
分类设置完后,在需要关闭侧滑菜单的界面执行👇
[[NSNotificationCenter defaultCenter] postNotificationName:@"disableRESideMenu" object:nil];
为什么我要把代码放在viewWillAppear里呢?
尝试放在viewDidLoad里面,但是程序运行起来黑屏;
尝试放在+(void)load方法里面,但是崩在发送通知的方法,提示找不到disableRESideMenu方法,为什么呢?因为+(void)load是类方法,不能在里面直接使用对象方法- (void)enableRESideMenu。
因此,我尝试了一下放在viewWillAppear里面。。。完美解决!!!