关闭当前视图控制器并打开新的视图控制器 - ios Swift

Posted

技术标签:

【中文标题】关闭当前视图控制器并打开新的视图控制器 - ios Swift【英文标题】:Dismiss Current View controller and open new view controller - ios Swift 【发布时间】:2016-01-28 14:02:27 【问题描述】:

我有三个视图控制器。现在我在第二个视图控制器中。我想关闭我当前的视图控制器并打开第三个视图控制器。我该怎么做?我可以使用以下代码关闭第三个视图控制器以及第二个视图控制器。

self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(false, completion: nil)

我的问题是当我使用此功能时屏幕闪烁。这意味着第二个视图控制器显示并关闭。那我该怎么做呢?

我想关闭当前视图控制器并打开新视图 控制器

android 中是可能的。所以我希望在ios中也是可能的。我怎样才能做到这一点。请有人帮助我。

编辑 1:

我尝试关闭当前的视图控制器并使用以下代码打开新的视图控制器。然后我的第二个和第三个都关闭了。

self.dismissViewControllerAnimated(false) 
    // go back to MainMenuView as the eyes of the user
    presentingViewController.dismissViewControllerAnimated(false, completion: nil)

【问题讨论】:

【参考方案1】:

我找到了解决办法

我将所有视图控制器更改为导航控制器的子级。并从第三个视图控制器中删除历史记录,如下所示

let tempVCA = self.navigationController!.viewControllers
        for tempVC: UIViewController in tempVCA 
            if (tempVC is SECONDVC) 
                tempVC.removeFromParentViewController()
            
        

我正在使用来自第三个视图控制器的 viewdidload func 的这段代码

【讨论】:

以上是关于关闭当前视图控制器并打开新的视图控制器 - ios Swift的主要内容,如果未能解决你的问题,请参考以下文章

关闭当前的模态视图控制器,然后呈现新的模态视图控制器

在 iOS 上,为啥在当前视图控制器之后立即关闭视图控制器不起作用?

消除关闭视图控制器和呈现新视图控制器之间的延迟

视图控制器不会立即关闭并呈现新的视图控制器

在当前视图控制器下显示新的视图控制器

无法关闭文本字段上的键盘