gpt4 book ai didi

ios - 如何正确关闭模态视图 Controller ?

转载 作者:行者123 更新时间:2023-11-29 05:26:59 25 4
gpt4 key购买 nike

在我的自定义 TabBarController 中,我为每个选项卡设置了 NavigationController

let viewController = [HomeViewController(), ProfileViewController()]
let navControllers = viewControllers.map { return UINavigationController(rootViewController: $0) }
setViewControllers(navControllers, animated: false)

在我的 HomeViewController 中,我有一个 CollectionView,当选择一个单元格时,它将我的 VideoPlayerViewController 推送到 NavigationController。然后 VideoPlayerViewController 将 ViewController 作为模式呈现:

class PopoverViewController: UIViewController {
@IBAction func presentPopover() {
let popoverViewController = PopoverViewController()
popoverViewController.modalPresentationStyle = .fullScreen
popoverViewController.delegate = self
present(popoverViewController, animated: true, completion: nil)
}
}

在我的 PopoverViewController 中,我有一个关闭按钮,可以调用 VideoPlayerViewController 中的委托(delegate)方法:

class PopoverViewController: UIViewController {
@objc func closeTapped() {
delegate?.willClose(self)
}
}

extension VideoPlayerViewController: PopoverViewControllerDelegate {
func willClose(_ viewController: PopoverViewController) {
viewController.dismiss(animated: true, completion: nil)
}
}

当在我的 PopoverViewController 上调用解除时,它不仅会解除模式 ViewController,还会从 NavigationController 中弹出 VideoPlayerViewController,然后返回到 rootViewController (HomeViewController)。

我想返回 VideoPlayerViewController,只关闭 PopoverViewController,而不弹出 VideoPlayerViewController。

最佳答案

您正在视频播放器 View Controller 上调用解雇。这应该在 Popover ViewController 上完成,如下所示:

class PopoverViewController: UIViewController {
@objc func closeTapped() {
dismiss(animated: true, completion: nil)
}
}

关于ios - 如何正确关闭模态视图 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58068122/

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