如何在Monotouch中实现多个代理?

时间:2013-04-28 18:42:04

标签: c# cocoa-touch xamarin.ios

在Objective-C中,诸如UITableViewControllerDelegate之类的委托是协议,因此我可以在一个类中实现多个。

在Monotouch中,所有iOS代表都作为C#类公开。这使得无法在单个控制器类上实现两个委托,因为C#(正确地说,IMO)只允许单继承。

委托声明是否在Monotouch框架中的某处作为C#接口存在? (这将是我们可以从Objective-C获得最接近的协议)

如果我需要在Monotouch / C#中的类上实现多个委托,我有哪些选择?

1 个答案:

答案 0 :(得分:6)

您可以使用WeakDelegate执行此操作,但必须使所有Export装饰正确无误。关于底部here附近的弱代表的文档。 HereUITableViewSource弱代表的示例。

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