tomazsaraiva
3/15/2018 - 12:14 AM

Shared Controllers

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
}