【发布时间】:2016-01-20 16:37:43
【问题描述】:
首先让我说我想在没有故事板的情况下完成所有这些。我的情况如下:我有一个用户的登录页面。在登录页面上,用户可以登录,或被带到注册页面。当用户注册成功时,他们将被带到主菜单。但是,如果我从主菜单中单击注销,则关闭主菜单视图控制器会将我带回注册页面(这是有道理的)。
问题是我需要将用户带到登录页面。但是,我无法展示原始登录页面,因为我收到错误“警告:尝试展示已经展示的内容”
有什么方法可以让我解除 2 个视图控制器吗?或者如果它是从某个视图控制器呈现的,则可能在视图控制器上运行一行代码?
谢谢!
这是我在主菜单中使用的解决方案,它有效
if(self.presentingViewController == registerPage){
registerPage.dismissViewControllerAnimated(true, completion: nil)
}
self.dismissViewControllerAnimated(true, completion: nil)
【问题讨论】:
-
一种方法:将所有 viewControllers 放入一个 navigationViewController,然后使用 navigationViewController.viewControllers 和 navigationViewController.popToViewController() 来管理你的堆栈:)
-
@Breek 我可以弹出两个控制器吗?因为我基本上需要做的是备份 2,而不仅仅是 1。
-
是的,如果您能够访问您的 loginViewController 实例,那么您可以执行 navigationViewController.popToViewController(loginViewController, animated: true)。否则,您可以迭代您的 navigationViewController.viewControllers 以获取您的 loginViewController
-
这很有意义,我今天会尝试一下。谢谢!
标签: ios swift uiview uiviewcontroller