iOS: SWRevealViewController revealToggle 已被调用但什么都不做

iOS: SWRevealViewController revealToggle is been call but doesn't do nothing

我正在尝试在这种情况下实施 SWRevealViewController:

来自我的主要 viewController:

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:YES];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    SWRevealViewController *SWR = [storyboard instantiateViewControllerWithIdentifier:@"SWRevealViewController"];
    [self presentViewController:SWR animated:YES completion:nil];
}

来自我的绿色视图控制器:

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:YES];
    self.reveal = [[SWRevealViewController alloc] init];
    self.reveal.delegate = self;
    self.menu.target = self;
    self.menu.action = @selector(revealToggleAction:);
    [self.view addGestureRecognizer:self.reveal.panGestureRecognizer];
    NSLog(@"viewDidLoad");
}

-(void)revealToggleAction:(id)sender
{
    [self.reveal revealToggle:self];
}

已调用 revealToggle 操作,但未执行任何操作。它不会加载后视控制器。你们中有谁知道发生这种情况或我做错了什么吗?

您正在创建 SWRevealViewController 的新实例。

我认为如果您将 self.reveal 设置为 self.revealViewController 它会起作用。

您需要设置 SWRevealViewController 为初始视图控制器。

假设您从右侧显示侧边栏菜单。

首先将你的第一个视图控制器嵌入到导航控制器,然后在你的第一个视图控制器viewdidload()viewDidAppear方法中添加下面提到的代码,即

//this is your side menu view controller.

UIViewController *sideMenuController =
[self.storyboard instantiateViewControllerWithIdentifier:@"YourSideMenuIdentifier"];

//this is the navigation controller embed to your green view controller.

UINavigationController *nc1 =
(UINavigationController *)[self.storyboard instantiateViewControllerWithIdentifier:@"YourNavigationControllerIdentifier"];

//This is your reveal view Controller.

SWRevealViewController *revealViewController =
[[SWRevealViewController alloc]initWithRightViewController:sideMenuController frontViewController:nc1];
[self.navigationController pushViewController:revealViewController animated:YES];
[self.navigationController setNavigationBarHidden:YES];

这将导航到控制器,即绿色视图控制器。

然后在你的绿色视图控制器 viewdidload()viewDidAppear 方法中添加下面提到的代码,即

//GreenViewController.h file

@interface GreenViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIBarButtonItem *sideBarItem;
@end


//Your GreenViewController.m file

_sideBarItem.target = self.revealViewController;
_sideBarItem.action = @selector(rightRevealToggle:);
SWRevealViewController *revealController = [self revealViewController];
[self.view addGestureRecognizer:revealController.panGestureRecognizer];

注意:有关更多详细信息,请查看下面提到的 link

http://www.appcoda.com/ios-programming-sidebar-navigation-menu/