首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pop SWRevealViewController

Pop SWRevealViewController
EN

Stack Overflow用户
提问于 2015-01-08 17:22:44
回答 3查看 1.2K关注 0票数 0

我正在使用SWRevealViewController构建一个滑动菜单。在访问菜单之前,将显示登录视图以允许用户登录。现在,我想让用户断开连接并再次显示登录视图。我的问题是如何打开SWRevealViewController。

在登录后提供对应用程序访问的代码为:

代码语言:javascript
复制
MainViewController *vMainMenu = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    vMainMenu.strURL = URL;
    LeftMenu *vLeftMenu = [[LeftMenu alloc] initWithNibName:@"LeftMenu" bundle:nil];

    UINavigationController *principalNavController = [[UINavigationController alloc] initWithRootViewController:vMainMenu];
    UINavigationController *rearNavController = [[UINavigationController alloc] initWithRootViewController:vLeftMenu];

    SWRevealViewController *mainRevealController = [[SWRevealViewController alloc] initWithRearViewController:rearNavController frontViewController:principalNavController];

    mainRevealController.delegate = self;

    self.viewController = mainRevealController;

    principalNavController.navigationBar.hidden = YES;
    rearNavController.navigationBar.hidden = YES;

    self.window.rootViewController = self.viewController;

此解决方案不起作用:

代码语言:javascript
复制
[self.revealViewController.navigationController popViewControllerAnimated:YES];
Splash *vSplash = [[Splash alloc] initWithNibName:@"Splash" bundle:nil];
[self.navigationController pushViewController:vSplash animated:YES];

你能帮帮我吗?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2015-02-16 23:02:28

你不能通过pop回到你的LoginViewController。您可以添加不带动画的PresentViewController来执行此操作。

代码语言:javascript
复制
Splash *vSplash = [[Splash alloc] initWithNibName:@"Splash" bundle:nil];
[self presentViewController: vSplash animated:NO completion:nil];
票数 0
EN

Stack Overflow用户

发布于 2015-02-23 19:54:02

我也有同样的问题。我已经实现了几个故事板。

代码语言:javascript
复制
        let storyboard = UIStoryboard(name: "Login", bundle: nil)
        let startcontroller = storyboard.instantiateViewControllerWithIdentifier("LoginVC") as UIViewController
        window?.rootViewController = startcontroller

使用此代码片段,您可以访问正确的View Controller。

票数 0
EN

Stack Overflow用户

发布于 2016-01-27 01:11:27

您可以使用“展开Segue”。解开分段类似于常规分段,它向后而不是向前。

首先,转到Login View Controller并添加以下方法:

代码语言:javascript
复制
-(IBAction)unwindToLoginScreen:(UIStoryboardSegue *)segue {
}

该方法可能是空的,它可以有任何名称;使用描述性名称是很好的,因为您的代码上可能有许多展开segues,并且能够区分它们将是有用的。

此展开方法将充当对情节提要上的所有视图控制器都可见的全局常量。

现在,在每个应该能够返回到Login屏幕的视图控制器上,您可以创建一个展开Segue。您可以在故事板上执行此操作:

  1. 选择所需的视图控制器;在顶部栏上,您应该看到三个按钮,一个表示视图控制器,另一个表示第一个响应器,另一个表示从视图控制器按钮到退出按钮的Exit.
  2. Ctrl+Drag。将出现一个上下文菜单,其中将列出您在故事板上创建的所有可见的展开方法。
  3. 在文档轮廓上,视图控制器将出现一个“展开段”。您可以向该段添加标识符(例如,在您的情况下为"Login“)。然后调用performSegueWithIdentifier。选择您在登录视图控制器上创建的

这样做,视图控制器和登录视图控制器之间的完整堆栈将展开。也就是说,所有堆叠在Login视图控制器之上的视图控制器都将被弹出。

您还可以将prepareForSegue用于展开的segues,方法与使用常规segues相同。如果您想对段执行某些操作,可以将代码添加到-(IBAction)方法中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27836668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档