iOS UISearchController:等到取消搜索后 UISearchController 被关闭

iOS UISearchController: Wait until UISearchController is dismissed after canceling search

我有一个 UISearchController 当用户点击取消按钮时它被关闭。用户单击取消按钮后,我希望先关闭 UISearchController 然后调用 showNewTableData 方法。这是我正在使用的有效代码。

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    dispatch_async(dispatch_get_main_queue(), ^{
        [self showNewTableData];
    });
}

- (void)showNewTableData {
      if (self.searchController.active && self.searchController.searchBar.text.length > 0) {
         // show search data
      } else {
         // show non search data
      }
    }

使用 dispatch_async 似乎可以很好地满足我的要求,但不确定这是否是个好主意。如果我不使用 dispatch_async,我最终会显示搜索数据,因为搜索栏尚未完成清除文本并且它仍然处于活动状态。任何建议表示赞赏。

鉴于您尝试进行 UI 更改的方式,可以在主线程中执行此操作。