tvOS 14 - UISearchController 解散整个 UITabController
Posted
技术标签:
【中文标题】tvOS 14 - UISearchController 解散整个 UITabController【英文标题】:tvOS 14 - UISearchController dismissing the entire UITabController 【发布时间】:2020-10-09 21:21:23 【问题描述】:从第一天开始,我就遇到了 UISearchController 的几个问题,但我总是设法解决它。但是,对于 tvOS 14,我现在遇到了一个我不明白的问题:
-
我展示了我的标签控制器
从 tabController 的 viewController 之一,我展示了 searchController;
我按菜单关闭它。
结果:searchController 和整个 tabController 被解除。
预期:只有 searchController 应该被关闭并返回到我提供它的 viewController。
这只发生在 tvOS14 中,在 tvOS13.X 中运行良好。
我试图在关闭 presentingViewController
之前检查它,由于某种原因,它是 tabController 而不是我展示它的 viewController。
这是要展示的一段代码:
UISearchController *searchController = [[UISearchController alloc] initWithSearchResultsController:resultVC];
searchController.searchResultsUpdater = resultVC;
searchController.delegate = resultVC;
searchController.searchBar.delegate = resultVC;
[strongSelf presentViewController:searchController animated:YES completion:nil];
当我按下菜单,或者从 resultVC 中的按钮操作中执行此代码时:
[self dismissViewControllerAnimated:YES completion:nil];
我得到了上面解释的结果。 如果我这样做,结果相同:
[self.searchController dismissViewControllerAnimated:YES completion:nil];
我也尝试将所有内容包装成UISearchContainerViewController
,但结果是一样的。
有人知道吗?
【问题讨论】:
【参考方案1】:我为 Apple 打开了一个错误。
与此同时,我解决了创建一个新的UIViewController
,在那里呈现UISearchViewController
,然后呈现这个新的视图控制器。仅适用于 tvOS14。
要关闭它,我首先关闭搜索控制器,然后关闭新的视图控制器。
为了处理对“菜单”按钮的点击,我在结果视图控制器和搜索视图控制器中覆盖了pressesBegan
(通过自定义类)。
【讨论】:
以上是关于tvOS 14 - UISearchController 解散整个 UITabController的主要内容,如果未能解决你的问题,请参考以下文章