gpt4 book ai didi

ios - 使用当前上下文作为演示样式时一起关闭多个 ViewController

转载 作者:行者123 更新时间:2023-11-28 23:23:55 27 4
gpt4 key购买 nike

我正在创建一个应用程序,将一个 View Controller 放置在另一个 View Controller 之上

Presentation: current context

但是当我尝试通过将顶部拖动到底部来关闭屏幕时, View 不会消失。

我还尝试添加一个按钮以使其关闭,但这也不起作用。

@IBAction func dis(_ sender: Any) {
navigationController?.popViewController(animated: true)
self.dismiss(animated: true)
}

那么,当它使用“当前上下文”作为演示文稿样式时,如何在向下拖动顶部 View 时关闭这两个 View ?

我使用“当前上下文”,因为以前的屏幕不应再次显示。我不想将两者都拖下来,而是想只拖下一个以使它们都消失。但它似乎没有按预期工作。

最佳答案

虽然“当前上下文”不是@matt 提到的这个目的,

在这种情况下,您应该解雇提供此 Controller 的 Controller 以同时解雇两者:

self.presentingViewController!.dismiss(animated: true) // `!` is to makeing sure it's not crashing.

演示:

使用这个简单的代码来演示:

class ViewController: UIViewController {
@IBAction func present() {
let destination = storyboard!.instantiateInitialViewController()!
if presentingViewController != nil {
// You are not in the A
if presentingViewController?.presentingViewController != nil {
// You are in the C
presentingViewController?.presentingViewController?.dismiss(animated: true)
return
} else {
// You are in the B
destination.modalPresentationStyle = .currentContext
}
}
present(destination, animated: true, completion: nil)
}
}

用法:

  1. 创建单 View 应用
  2. 将一个按钮拖到 View Controller 中
  3. 用提供的代码替换 ViewController
  4. 连接@IBAction
  5. 运行它以查看结果。

关于ios - 使用当前上下文作为演示样式时一起关闭多个 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59184080/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com