Ios SWRevealViewController无故事板,并使用UIButton切换
我正在尝试使用没有故事板和UIButton的SWRevealViewController。我的项目有两个带有nib的UIViewController。主要的一个称为ViewController,另一个称为MenuViewController 在我的ViewController中,我有以下代码:Ios SWRevealViewController无故事板,并使用UIButton切换,ios,objective-c,iphone,swrevealviewcontroller,Ios,Objective C,Iphone,Swrevealviewcontroller,我正在尝试使用没有故事板和UIButton的SWRevealViewController。我的项目有两个带有nib的UIViewController。主要的一个称为ViewController,另一个称为MenuViewController 在我的ViewController中,我有以下代码: - (void)viewDidLoad { [super viewDidLoad]; MenuViewController *menuView; SWRevealViewCon
- (void)viewDidLoad {
[super viewDidLoad];
MenuViewController *menuView;
SWRevealViewController *revealViewController = [[SWRevealViewController alloc] initWithRearViewController:menuView frontViewController:self];
if ( revealViewController )
{
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}
}
- (IBAction)toggleMenu:(id)sender {
NSLog(@"Toggling menu");
SWRevealViewController *revealController = self.revealViewController;
[revealController rightRevealToggleAnimated:YES];
}
切换菜单按钮按预期打印“切换菜单”,但不显示菜单控制器。我知道这不是使用SWRevealViewController的常规方法,但有人知道如何让它工作吗?在viewDidLoad()中添加以下行
在viewDidLoad()中添加以下行
你可以试一下这个,稍作修改。这对我很有帮助
- (IBAction)toggleMenu:(id)sender{
[self.btn addTarget:self.revealViewController action:@selector(revealToggle:) forControlEvents:UIControlEventTouchUpInside];
}
你可以试一下这个,稍作修改。这对我很有帮助
- (IBAction)toggleMenu:(id)sender{
[self.btn addTarget:self.revealViewController action:@selector(revealToggle:) forControlEvents:UIControlEventTouchUpInside];
}
这里有两种方法用于为SWRevealViewController设置两个(左视图和右视图)视图控制器。只需在
viewDidLoad
中调用它们即可
-(void) initSlideMenu
{
SWRevealViewController * menuViewController = (SWRevealViewController *)self.revealViewController;
if (menuViewController)
{
[_menuButton setTarget:self.revealViewController];
[_menuButton setAction:@selector(revealToggle:)];
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}
}
-(void) initRightMenu
{
SWRevealViewController * rightViewController = (SWRevealViewController *)self.revealViewController;
if (rightViewController)
{
rightViewController.rightViewRevealOverdraw =0.0f;
[_notificationButton setTarget:self.revealViewController];
[_notificationButton setAction:@selector(rightRevealToggle:)];
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}
}
这里有两种方法用于为SWRevealViewController设置两个(左视图和右视图)视图控制器。只需在
viewDidLoad
中调用它们即可
-(void) initSlideMenu
{
SWRevealViewController * menuViewController = (SWRevealViewController *)self.revealViewController;
if (menuViewController)
{
[_menuButton setTarget:self.revealViewController];
[_menuButton setAction:@selector(revealToggle:)];
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}
}
-(void) initRightMenu
{
SWRevealViewController * rightViewController = (SWRevealViewController *)self.revealViewController;
if (rightViewController)
{
rightViewController.rightViewRevealOverdraw =0.0f;
[_notificationButton setTarget:self.revealViewController];
[_notificationButton setAction:@selector(rightRevealToggle:)];
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}
}
那是行不通的。我还添加了一些委托方法,但它们也没有被调用。这不起作用。我还添加了一些委托方法,它们也没有被调用。