我想将viewController类型作为函数传递,就像下面的代码一样
extension UIViewController {
func switchScreen(storyboardName:String,viewControllerName:String,vcc:UIViewController) {
let mainStoryboard = UIStoryboard(name: storyboardName, bundle: Bundle.main)
if let viewController = mainStoryboard.instantiateViewController(withIdentifier: viewControllerName) as? vcc {
self.present(viewController, animated: true, completion: nil)
}
}
}
但是xcode返回了错误Cannot find type 'vcc' in scope
我试着在UIViewController
后面的参数中添加.Type
,但错误是相同的。有解决方法吗?
2条答案
按热度按时间woobm2wo1#
第三个参数必须是类型,而不是示例
并称之为
但是由于
instantiateViewController
和present
不关心静态类型,因此您不需要它,这就足够了为了避免崩溃,您可以添加一个具有可用视图控制器标识符的枚举,并在第二个参数中传递此类型,例如
qltillow2#
使用通用参数