如何从SWRevealViewController弹出viewController?

时间:2015-07-29 10:10:08

标签: ios objective-c swrevealviewcontroller

在我的应用程序中按下loginViewController中的登录按钮后,它会推送到我SWRevealViewController的前面viewController。在我的RearViewController我有退出按钮。当我按下它时,它应该再次弹出到后面的viewController(LoginViewController)。但即使我设置了这样的按钮单击事件,它也不会导航到loginViewController。

-(void)signOutClick :(id)sender
    {
      [self performSelectorInBackground:@selector(moveToLoginView) withObject:nil];
    }

-(void)moveToLoginView
    {
      [self.navigationController popToRootViewControllerAnimated:YES];
    }

但是当我滑动视图时,它会向后视图发出。我想要禁用该滑动功能到后视图。当我点击RearViewController中的退出按钮时,我想转到后视图。我怎样才能做到这一点?请帮帮我。

由于

2 个答案:

答案 0 :(得分:-1)

我不确定,而不是使用

[self.navigationController popToRootViewControllerAnimated:YES];

尝试使用,

[self.navigationController popViewControllerAnimated:YES];

要停止滑动手势,您可以使用代码,

-  (void)viewWillAppear:(BOOL)animated 
{
   [super viewWillAppear:animated];
   self.revealViewController.panGestureRecognizer.enabled = NO;
}

答案 1 :(得分:-2)

如果要通过单击执行这些操作,则需要重置顶视图控制器。 E.g。

获取ECSlidingViewController的实例

ECSlidingViewController *slidingController = self.slidingViewController;

获取您希望位于顶部的视图控制器

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"mainViewController"];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];

设置topViewController属性

slidingController.topViewController = nc;
[slidingController resetTopViewAnimated:NO];