У меня есть контроллер представления, у которого есть карусель с 3 страницами. На первой странице у меня есть представление коллекции и я хочу включить панель поиска в панели навигации, но на двух других страницах я не хочу этого. Так что на обратном вызове выбора страницы я установил нулевой searchcontroller, когда это вторая и третья страница, и установил его обратно в объект searchcontroller, когда это первая страница.
Это работает хорошо, но у меня нет анимации, и контроллер просмотра не изменить размер, и мы можем увидеть пустое пространство между видом и панелью навигации, когда панель поиска скрыта. Есть ли способ добиться этого должным образом?
Мой код ViewDidLoad:
public override void ViewDidLoad()
{
base.ViewDidLoad();
searchController = new UISearchController(searchResultsController: null)
{
HidesNavigationBarDuringPresentation = true,
DimsBackgroundDuringPresentation = false,
//ObscuresBackgroundDuringPresentation = true
};
searchController.SearchBar.SearchBarStyle = UISearchBarStyle.Minimal;
DefinesPresentationContext = true;
NavigationItem.SearchController = searchController;
}
После обратного вызова выбора страницы:
void OnPageSelected()
{
if (page is IVehiclesSearchView)
{
NavigationItem.SearchController = searchController;
}
else
{
NavigationItem.SearchController = null;
}
}
Спасибо!