2017-05-11 1 views
2

を行いません。のiOS:SWRevealViewController revealToggleがコールされているが、私は、このシナリオにSWRevealViewControllerを実装しようとしている何も

enter image description here 私のメインの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アクションはコールされていますが、何もしません。リアビューコントローラはロードされません。あなたはこれを知っているか、私が間違っていることを知っていますか?

答えて

2

右側からサイドバーメニューを表示しているとします。

まず埋め込みナビゲーションコントローラへのあなたの最初のビューコントローラ、そしてあなたの最初のビューコントローラ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]; 

注:詳細については、言及したリンクの下

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

をチェック
0

SWRevealViewControllerの新しいインスタンスを作成しています。

self.revealself.revealViewControllerに設定するとうまくいくと思います。

1

設定が必要SWRevealViewControllerは初期View Controllerです。

関連する問題