在 UISearchController 中未调用 SearchResultsUpdating

SearchResultsUpdating not being called in UISearchController

我在 Xamarin.Ios 中使用 UISearchController 并且一切正常,但是当我开始输入时,SearchhResultUpdating 方法没有覆盖也没有触发。它有时有效,有时无效,但现在它根本无效。

这是 SearchResultsUpdating Class:

class SearchResult : UISearchResultsUpdating
{
    public event Action<string> UpdateSearchResults = delegate { };

    public override void UpdateSearchResultsForSearchController(UISearchController searchController)
    {

        this.UpdateSearchResults(searchController.SearchBar.Text);
    }
}

这是我使用它的时间:

 var searchresult = new SearchResult();
 searchresult.UpdateSearchResults += searchResultsController.Search;
 var searchController = new UISearchController(searchResultsController) { SearchResultsUpdater = searchresult };

您应该将 searchController 设为 global variable

如果你这样做,它不会释放并保留在它的生命周期中,并在 UISearchResultsUpdating

中触发该方法

参考这个Demo