Swift:关闭 viewController 1 然后呈现 viewController 2

Posted

技术标签:

【中文标题】Swift:关闭 viewController 1 然后呈现 viewController 2【英文标题】:Swift: Dismiss viewController 1 then present viewController 2 【发布时间】:2016-11-17 09:59:04 【问题描述】:

我想关闭一个加载器视图控制器,然后呈现一个UIDocumentInteractionController。我找到了一个 Objective-c 解决方案,但我想要 Swift 3 的解决方案。

这是取自answer的objective-c代码:

// Does not break
[viewController1 dismissViewControllerAnimated:YES completion:^
    [self presentViewController:viewController2 animated:YES completion:NULL];
];

我在 Swift 3 中是这样翻译的:

 self.dismiss(animated: false, completion:
                                self.docController = UIDocumentInteractionController(url: destinationUrl!)
                                self.docController!.presentOpenInMenu(from: CGRect.zero, in: self.view, animated: true)

)

它工作正常,但我想确定 Objective-c 中的 completion:^ 表示 Swift 3 中的 completion:

【问题讨论】:

是的,它们是一样的 【参考方案1】:

是的,你的假设是正确的。虽然您不需要在 Swift 3 中显式编写完成。

你也可以这样写。

self.dismiss(animated: false)  
    self.docController = UIDocumentInteractionController(url: destinationUrl!)
    self.docController!.presentOpenInMenu(from: CGRect.zero, in: self.view, animated: true)

【讨论】:

以上是关于Swift:关闭 viewController 1 然后呈现 viewController 2的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 Swift 关闭 ViewController 期间将值从 ViewController B 传递给 ViewController A? [复制]

如何关闭当前的 ViewController 并在 Swift 中更改为新的 ViewController?

关闭一个 ViewController 并呈现另一个 ViewControlloer - IOS - Swift 3

当模态视图(第二个视图)被关闭时刷新 ViewController 中的核心数据 - Swift

ViewController 关闭 swift ios

如何关闭当前的 ViewController 并在 Swift 中转到另一个视图