我已经为侧菜单完成了一些演示项目。我正在使用右侧菜单显示侧面菜单视图。在这里,从VC1到VC 2推。在VC2中,我有一个按钮打开右侧菜单。但是在这里,当我第一次单击时,它不起作用。第二次单击后,它不起作用。
山姆如果我回去再来。首先单击它不起作用。第二次单击其工作正常后。知道为什么会发生?
我的演示项目:这里
我添加了下面的uibutton动作。
//从V1到V3 VC
- (IBAction)tap:(id)sender {
NSString * storyboardName = @"Main";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
VC3 * vc = [storyboard instantiateViewControllerWithIdentifier:@"VC3"];
[self.navigationController pushViewController:vc animated:YES];
}
显示菜单:
- (IBAction)DASD:(id)sender {
[self.btn addTarget:self.revealViewController action:@selector(rightRevealToggle:) forControlEvents:UIControlEventTouchUpInside];
}
使您在 ViewDidLoad
中按钮目标动作。不要创建ibAction
来触发侧面菜单。
- (void)viewDidLoad {
[super viewDidLoad];
SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController )
{
[self.yourButton addTarget:self.revealViewController action:@selector(rightRevealToggle:) forControlEvents:UIControlEventTouchUpInside];
}
}
我已经检查了您的代码。您只需要做一个更改。
[self.btn addTarget:self.revealViewController action:@selector(rightRevealToggle:) forControlEvents:UIControlEventTouchUpInside];
从- (IBAction)DASD:(id)sender
删除上面的代码,并添加viewDidLoad
VC3.m
文件的方法。
因此,您的 VC3.m
文件代码如下: -
- (void)viewDidLoad {
[super viewDidLoad];
[self.btn addTarget:self.revealViewController action:@selector(rightRevealToggle:) forControlEvents:UIControlEventTouchUpInside];
}
- (IBAction)DASD:(id)sender {}