2015-11-03 99 views
1

我有一个前视图控制器和幻灯片侧视图。在导航栏后退按钮按下时,我一直弹出视图控制器到前一个视图控制器。如果我按下后退按钮时打开,我想让侧视图滑出。SWRevealViewController按导航后退按钮时关闭左侧视图

我的代码是 我有一个后退按钮作为导航栏:

[navbar.backViewButton addTarget:self action:@selector(backBtnClicked) forControlEvents:UIControlEventTouchUpInside]; 

在后退按钮按下:

-(void)backBtnClicked{ 
[self.navigationController popViewControllerAnimated:YES]; 
} 

我知道我可以添加revealtoggle为:

-(void)backBtnClicked{ 
[self.revealViewController revealToggleAnimated:YES]; 
[self.navigationController popViewControllerAnimated:YES]; 
} 

但是,这给了我一个问题,如果侧视图先前已关闭,它会显示并打开它,这是我不想按下后退按钮。

我想是这样

-(void)backBtnClicked{ 
if([self.revealViewController isSideViewAppeared or isSideviewShowing]){  
[self.revealViewController revealToggleAnimated:YES]; 
} 
[self.navigationController popViewControllerAnimated:YES]; 
} 

需要帮助..提前

+0

你能添加一些代码 –

+0

如果其正与根控制器是一个SWL,你需要使用,[self.revealViewController revealToggleAnimated:YES] ;,如果你viecontroller在导航堆栈使用[自我。 navigationController popViewControllerAnimated:YES]; –

+0

我找出swrevealview委托方法的解决方案:)谢谢你的帮助,虽然 –

回答

0

由于创建存储无论是打开或关闭的布尔属性。鉴于将基于所述属性开启或关闭它。

1

我已经找到了答案,我只是想的toogle侧视出现,为消失:

[self.revealViewController revealToggleAnimated:YES]; 

这是切换和关闭..简单的解决方案的leftview是

-(void)backBtnClicked{ 


[self.revealViewController rightRevealToggleAnimated:YES]; 
[self.navigationController popViewControllerAnimated:YES]; 
} 
0

您必须使用SWRevealViewController导航方法进行弹出和推送。

将此代码写入您的后退按钮操作方法。

UINavigationController *frontNavigationController = (id)revealController.frontViewController; 
     if ([frontNavigationController.topViewController isKindOfClass:[YourViewController class]])   
      viewwaboutus=[[FlashViewController alloc]init]; 

      UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewwaboutus]; 
      [revealController pushFrontViewController:navigationController animated:YES]; 
     } 

可能会帮助你。

0

要使用SWRevealViewController让我们来试试它的时候手动关闭滑菜单:self.revealViewController().revealToggle(animated: true)

0

使用此代码的按钮操作。

if (self.revealViewController.frontViewPosition == 4){ 

      [self.revealViewController revealToggleAnimated:YES]; 
}