在UISearchController中未调用SearchResultsUpdating

Joh*_*ohn 0 xamarin.ios ios uisearchcontroller

我正在Xamarin.Ios中使用UISearchController,并且一切正常,但是当我开始键入内容时,未覆盖SearchhResultUpdating方法不会触发。它有时可以正常运行,而其他时候则无法进行监听,但是现在根本不起作用。

这是SearchResultsUpdating类:

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

    public override void UpdateSearchResultsForSearchController(UISearchController searchController)
    {

        this.UpdateSearchResults(searchController.SearchBar.Text);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我使用它的时间:

 var searchresult = new SearchResult();
 searchresult.UpdateSearchResults += searchResultsController.Search;
 var searchController = new UISearchController(searchResultsController) { SearchResultsUpdater = searchresult };
Run Code Online (Sandbox Code Playgroud)

Col*_*SFT 5

你应该searchController做为global variable

如果这样做,它将不会释放并保持其生命周期,并在 UISearchResultsUpdating

参考这个演示