SearchResultsUpdating未在UISearchController中调用

时间:2017-10-16 11:47:38

标签: ios xamarin.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);
    }
}

以及我使用它的时候:

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

1 个答案:

答案 0 :(得分:2)

您应将searchController设为global variable

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

中触发该方法

请参阅此Demo