【问题标题】:iOS UISearchController: Wait until UISearchController is dismissed after canceling searchiOS UISearchController:等到 UISearchController 在取消搜索后被解除
【发布时间】:2018-08-02 17:49:23
【问题描述】:

我有一个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,我最终会显示搜索数据,因为搜索栏还没有完成清除文本并且它仍然处于活动状态。任何建议表示赞赏。

【问题讨论】:

    标签: ios objective-c uitableview searchbar dispatch-async


    【解决方案1】:

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

    【讨论】:

    • 那么在dispatch_async块的UITableView中添加新数据就可以了,对吧?抱歉,只是想 100% 确定。
    • 你可以从任何地方添加数据,调度的问题是特定于你的问题,因为你希望在下一个之前发生一些事情现在如果我们专门讨论表格视图,它可能最好只需在搜索开始或结束时更改表格视图的数据源,沿着结果和过滤结果行更改,并根据搜索状态更改这些内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 2016-05-27
    相关资源
    最近更新 更多