在UIViewControllers

时间:2016-01-20 16:37:43

标签: ios swift uiview uiviewcontroller

首先我要说的是,我想在没有故事板的情况下完成所有这些工作。我的情况如下:我有一个用户登录页面。在登录页面上,用户可以登录或进入注册页面。当用户成功注册时,它们将被带到主菜单。但是,如果我从主菜单中单击logout,则忽略主菜单viewcontroller会将我带回寄存器页面(这很有意义)。

问题是我需要将用户带到登录页面。但是,我无法显示原始登录页面,因为我收到错误"警告:尝试呈现已经呈现的内容"

我有什么方法可以解雇2个视图控制器吗?或者,如果某个视图控制器是从某个视图控制器呈现的,那么可能会在视图控制器上运行一行代码?

谢谢!

这是我在主菜单中使用的解决方案,它可以正常使用

 if(self.presentingViewController == registerPage){
            registerPage.dismissViewControllerAnimated(true, completion: nil)
    }
        self.dismissViewControllerAnimated(true, completion: nil)

2 个答案:

答案 0 :(得分:2)

如果您使用的是导航控制器,则可以获取viewControllers数组属性,在没有要关闭的viewControllers的情况下构建新数组,并使用新数组设置属性。

答案 1 :(得分:1)

无需切换到导航控制器。

如果您要呈现视图控制器而不是简单地尝试:

对于Objective-C:

[[[self presentingViewController] presentingViewController]  dismissViewControllerAnimated:YES completion:nil];

对于Swift:

self.presentingViewController!.presentingViewController!.dismissViewControllerAnimated(true, completion: {})

希望它对你有用。