如何在iOS Swift中将类型的UIViewController传递给函数并类型转换为变量?

托马斯·埃索

说明

我正在定义一个通用API方法来处理应用程序中的弹出窗口。是否可以将UIViewController的类型传递给函数,然后将函数中的变量popOverVC类型转换为popUpVC的类型,即作为参数传递给函数。Swift下的所有程序都是值得的

参考代码

func showAsPopUp(currentVC: UIViewController,currentVCname: String, popupStoryboardID: String, popUpVC:UIViewController){
        let popUpVCType:AnyClass = type(of: popUpVC)
        let popOverVC = UIStoryboard(name: currentVCname, bundle: nil).instantiateInitialViewController(popupStoryboardID) as! popUpVCType
        currentVC.addChildViewController(popOverVC)
    }
泽蒙

这是使用泛型的好情况

func showAsPopUp<T: UIViewController>(currentVC: UIViewController,currentVCname: String, popupStoryboardID: String, popUpVC: T.type) {
    let popOverVC = UIStoryboard(name: currentVCname, bundle: nil).instantiateViewController(withIdentifier: popupStoryboardID) as! T
    currentVC.addChildViewController(popOverVC)
}

不确定这里的功能是什么,但这就是泛型如何适合上述代码。

上面方法的用法如下:

showAsPopUp(currentVC: UIViewController(), currentVCname: "asdsadv", popupStoryboardID: "asd", popUpVC: SomePopUpViewController.self)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将对象类型作为参数传递给构造函数并向其强制转换变量(JAVA)?

如何在Java中将String类型转换为Class类型

如何在IPython中将变量传递给魔术“运行”函数

如何在Go中将类型传递给函数参数

如何在Swift中将“索引”转换为“ Int”类型?

如何在Delphi中将通用类型转换为实际类型

如何在函数内部传递参数并将其转换为某个数据类型?

如何在Swift中将数据转换为Doubles,Ints和Strings等类型?

如何在流中将类型参数显式传递给泛型函数?

如何在打字稿tsx文件中将泛型类型传递给匿名函数

如何在WordPress中将PHP变量传递给JavaScript函数?

如何在Swift中将字典转换为自定义类型?

如何在Kotlin中将类型传递给泛型方法?

如何在C ++中将`this`传递给没有循环引用(或丢失类型)的构造函数?

如何在UWP中将类型传递给ConverterParameter?

如何在Pytorch中将张量转换为复杂类型?

如何在C#中将2种不同类型传递给函数参数?

如何在Python中将Json对象转换为树类型?

如何在JavaScript中将变量传递给回调函数

如何在Swift中将String类型的变量转换为CFString?

如何在Swift中将类型别名作为函数参数传递?

如何在Python中将变量传递给Shell函数?

如何在嵌套函数中将变量传递给javascript

如何在 Delphi 中将特定类型的变量转换为泛型 T?

如何转换为传递给函数的类型?

如何在反应中将变量传递给函数

如何在 Swift 中将 Enum 类型转换为 Double

如何在 Python 中将变量传递给 pyswarm 的函数

如何在 python 中将 Str() 类型的列转换为数字?