public static void DisposeAll(this UIView view) { if (view.IsDisposedOrNull()) { return; } var tableView = view as UITableView; if (tableView != null) { tableView.Source?.Dispose(); tableView.Source = null; } try { foreach (var subView in view.Subviews) { subView.DisposeAll(); } view.RemoveFromSuperview(); view.Dispose(); } catch { } }