关于特定类的Swift协议?

时间:2017-01-29 06:57:36

标签: swift

我正在构建一个UIPresentationController子类。 UIPresentationController定义了一个默认初始值设定项,如下所示:

init(presentedViewController: UIViewController , presentingViewController: UIViewController?)

现在,为了实现这一点,我希望我的presentedViewController符合某些协议,比如MyRandomProtocol

如何重新编写初始化程序,使得它将第一个参数作为UIViewController子类,并且特别符合MyRandomProtocol

1 个答案:

答案 0 :(得分:2)

您可以使用泛型。

init<T: UIViewController>(presentedViewController: T, ...) where T: MyRandomProtocol  {
    //initialization code
}