从“String”转换为不相关类型“BaseBottomSheet”总是失败

问题描述 投票:0回答:1

这是我的职责:

    func showBottomSheet(viewController vcName: String, with size: CGFloat = 500, dismisable: Bool = true) {
        guard let popupVC = vcName as? BaseBottomSheet else { return }
        popupVC.height = size
        popupVC.topCornerRadius = 35
        popupVC.presentDuration = 0.5
        popupVC.dismissDuration = 0.5
        popupVC.popupShouldBeganDismisss = dismisable
        present(popupVC, animated: true, completion: nil)
    }

使用此功能,我的页面上会出现一个弹出窗口。

但是 guard 让 popupVC = vcName 为? BaseBottomSheet else { return } 在这一行中 “从 'String' 转换为不相关类型 'BaseBottomSheet' 总是失败” 我收到此错误。所以我想要的应用程序中的弹出窗口无法打开。

打开这个弹出视图时,它还会从 BaseBottomSheet 页面获取这些行的信息:

popupVC.height = size
popupVC.topCornerRadius = 35
popupVC.presentDuration = 0.5
popupVC.dismissDuration = 0.5

这些行中的信息也在 BaseBottomSheet 中,如下所示:

var height: CGFloat?
var topCornerRadius: CGFloat?
var presentDuration: Double?
var dismissDuration: Double?

override var popupHeight: CGFloat { return height ?? CGFloat(300) }
override var popupTopCornerRadius: CGFloat { return topCornerRadius ?? CGFloat(10) 
override var popupPresentDuration: Double { return presentDuration ?? 1.0 }
override var popupDismissDuration: Double { return dismissDuration ?? 1.0 }
ios swift string uikit popup
1个回答
0
投票

您无法做您想做的事情,也许不要将 vcName 作为字符串尝试直接传递 BaseBottomSheet 的实例。

© www.soinside.com 2019 - 2024. All rights reserved.