这是我的职责:
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 }
您无法做您想做的事情,也许不要将 vcName 作为字符串尝试直接传递 BaseBottomSheet 的实例。