gpt4 book ai didi

swift - 如何在 Swift 中向下转换 UIViewController

转载 作者:行者123 更新时间:2023-11-28 09:57:40 25 4
gpt4 key购买 nike

我有几个继承自 UIViewController 的 View Controller 。 View 嵌入在选项卡栏 Controller 中。我实现了一个自定义 View 转换 Controller ,以便在我点击标签栏项目时可以切换 View 。我是否有可能知道 toVC 和 fromVC 的确切含义以便我可以执行不同的 View 转换?好像那样!不成功。当我使用 as? 时,变量没有设置为 true。什么是正确的转换方式或任何其他方式来检查它是什么 View ?谢谢

    func tabBarController(tabBarController: UITabBarController, animationControllerForTransitionFromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
var detail = false
var item = false
if var controller = toVC as? DetailViewController {
detail = true
}
if var controller = toVC as? ItemViewController {
item = true
}
...
return threeDAnimationController
}

最佳答案

您可能遇到的一个潜在问题是将 View Controller 插入 UINavigationController,因此您必须弄清楚什么是可见 View Controller 。我有这个方便的扩展:

extension UIViewController {
var contentViewController: UIViewController? {
if let navigationController = self as? UINavigationController {
return navigationController.visibleViewController
} else {
return self
}
}
}

您可以像这样将它合并到您的代码中:

func tabBarController(tabBarController: UITabBarController, animationControllerForTransitionFromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
var detail = false
var item = false
if var controller = toVC.contentViewController as? DetailViewController {
detail = true
}
if var controller = toVC.contentViewController as? ItemViewController {
item = true
}
...
return threeDAnimationController
}

关于swift - 如何在 Swift 中向下转换 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34478499/

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