如何在Monotouch中实现多个委托

本文关键字:实现 Monotouch | 更新日期: 2023-09-27 18:11:09

在Objective-C中,委托如UITableViewControllerDelegate是协议,所以我可以在一个类中实现多个。

在Monotouch中,所有的iOS委托都暴露为c#类。这使得不可能在单个控制器类上实现两个委托,因为c#(正确的,IMO)只允许单继承。

委托声明是否作为c#接口存在于Monotouch框架的某个地方?(这将是我们最接近Objective-C的协议)

如果我需要在Monotouch/c#中实现一个类上的多个委托,我的选择是什么?

如何在Monotouch中实现多个委托

您可以使用WeakDelegate来做到这一点,但您必须使所有Export装饰正确。关于弱委托的文档在这里的底部。下面是一个带有弱委托的UITableViewSource的例子。

我不确定为什么Xamarin必须使用类而不是Obj-C协议的接口,但我猜这是他们必须解决的限制。