public partial class ViewController : UIViewController, ISharedController
{
// fields
SharedController _controller;
// ctor
public ViewController(IntPtr handle) : base(handle)
{
}
// UIViewController
public override void ViewDidLoad()
{
base.ViewDidLoad();
_controller = new SharedController(this);
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (_controller != null)
{
_controller.Dispose();
_controller = null;
}
}
// ISharedController
}
public interface ISharedController
{
// TODO methods to call IN the ViewController/Activity
}
public class SharedController : IDisposable
{
// fields
ISharedController _controller;
// ctor
public SharedController(ISharedController controller)
{
_controller = controller;
}
// IDispose
public void Dispose()
{
// TODO dispose all resources
}
// SharedController
// TODO methods to call FROM the ViewController/Activity
}