从第一天起,我就一直在UISearchController上遇到一些问题,但我总是设法解决它。然而,对于tvOS 14,我现在遇到了一个我不理解的问题:
- 我展示了我的选项卡控制器
- 从选项卡控制器的一个视图控制器中,我展示了searchController
- 我按下菜单取消它
RESULT: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];
当我按下菜单,或者从结果VC:中的按钮操作执行此代码时
[self dismissViewControllerAnimated:YES completion:nil];
我得到上面解释的结果。如果我这样做,结果相同:
[self.searchController dismissViewControllerAnimated:YES completion:nil];
我还尝试将所有内容封装到UISearchContainerViewController
中,但结果是一样的。
有人知道吗?
我为苹果打开了一个bug。
同时,我解决了创建一个新的UIViewController
,在那里呈现UISearchViewController
,然后呈现这个新的视图控制器。仅适用于tvOS14。
为了消除它,我首先消除了搜索控制器,然后消除了新的视图控制器。
为了处理";菜单";按钮,我覆盖了结果视图控制器和搜索视图控制器上的pressesBegan
(通过自定义类(。