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 更改的方式,可以在主线程中执行此操作。
我有一个 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 更改的方式,可以在主线程中执行此操作。