我正在构建一个UIPresentationController子类。 UIPresentationController定义了一个默认初始值设定项,如下所示:
init(presentedViewController: UIViewController , presentingViewController: UIViewController?)
现在,为了实现这一点,我希望我的presentedViewController
符合某些协议,比如MyRandomProtocol
。
如何重新编写初始化程序,使得它将第一个参数作为UIViewController子类,并且特别符合MyRandomProtocol
?
答案 0 :(得分:2)
您可以使用泛型。
init<T: UIViewController>(presentedViewController: T, ...) where T: MyRandomProtocol {
//initialization code
}