我沒有完全理解monotouch中的委託機制。任何人都可以幫助我理解這個概念嗎?Monotouch:瞭解委託機制模式
問題很簡單。我將嘗試映射我在Monotouch中Objective C中完成的工作。
例如,假設我在MyController
的Objective C中創建了UIPopoverController
。在目標C的代碼如下:
@interface MyController : UIViewController <UIPopoverControllerDelegate> {
// ...
}
// ...
@end
裏面MyController
我可以istantiate一個UIPopoverController
如下所示:在委託使用
UIPopoverController *popover = // ...
popover.delegate = self;
和最後的方法。
那麼,Monotouch呢?
通過這個代碼,我可以istantiate延伸UIViewController
特定TouchUpInside事件處理程序內的UIPopoverController
內MyController
類:
popover = new UIPopoverController(new CustomController());
popover.PopoverContentSize = new SizeF(200f, 200f);
popover.PresentFromRect(button.Frame, containerForButtonView, UIPopoverArrowDirection.Left, true);
附:一個重要的方面是將popover引用作爲成員類,而不是處理程序內的局部變量,因爲monotouch GC工作正常!
預先感謝您。
我的第一個解決方案有效。我已經實現了一個擴展了UIPopoverControllerDelegate的CustomPopoverController。然後我添加了popover.delegate該控制器的一個實例。是否有可能作爲代表** MyController **或** CustomController **? – 2011-03-02 09:03:34
您的解決方案看起來如何?我能看到的唯一事件是'DidDismiss'和'WillReposition' ......並不是那麼多。 – testing 2014-11-25 10:23:35