public async override void ViewDidLoad()
{
base.ViewDidLoad();
await SampleManager.Current.InitializeAsync();
var data = SampleManager.Current.GetSamplesAsTree();
this.TableView.Source = new CategoryDataSource(this, data);
this.TableView.ReloadData();
var searchResultsController = new SearchResultsViewController(this, data);
// Create search updater and wire it up
var searchUpdater = new SearchResultsUpdater();
searchUpdater.UpdateSearchResults += searchResultsController.Search;
// Create a new search controller
SearchController = new UISearchController(searchResultsController);
SearchController.SearchResultsUpdater = searchUpdater;
// Display the search controller
SearchController.SearchBar.Frame = new CGRect(SearchController.SearchBar.Frame.X, SearchController.SearchBar.Frame.Y, SearchController.SearchBar.Frame.Width, 44f);
TableView.TableHeaderView = SearchController.SearchBar;
DefinesPresentationContext = true;
}