Hacer propiedad de tipo y también cumplir con el protocolo en Swift

Me gustaría hacer una propiedad que sea de cierto tipo y que también se ajuste a un protocolo, lo que habría hecho en Objective-C de esta manera:

@property (nonatomic) UIViewController<CustomProtocol> *controller;

Lo que estoy buscando es especificar que la propiedad se pueda establecer con un objeto de tipo UIViewController que también se ajuste a CustomProtocol, para que quede claro cuál es la clase base. Sé que probablemente podría usar un trozo de clase corto para obtener los mismos resultados, es decir

class CustomViewController : UIViewController, CustomProtocol {}

Pero esta no parece ser la forma más limpia de hacerlo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta