你如何关闭 UISearchController ? (iOS 8 和跟随)
How do you dismiss a UISearchController ? (iOS 8 and follow)
这一定是微不足道的,但我找不到您应该如何以编程方式关闭 UISearchController?
请注意,它是新的 UISearchController(于 2014 年推出 iOS 8),而不是 UISearchDisplayController。
到目前为止,这是我得到的
// Dismiss the search tableview
searchController.dismissViewControllerAnimated()
// Clear the Search bar text
searchController.active = false
但我还有取消按钮,无法摆脱它。
好的,经过更多测试后,您只需设置:
searchController.active = false
// or swift 4+
searchController.isActive = false
这是我尝试的第一件事,但我在一个 UISearchControllerDelegate 方法中调用了它,但它不起作用(可能应该用 dispatch_async 调用它(halbano 的回答似乎证实了这一点))。
无论如何,因为我在网上找不到那个答案,所以我正在回答我自己的问题,我希望它能帮助别人。
当您在转到另一个视图后尝试关闭搜索控制器时遇到过这个问题吗?我也遇到过这个问题。我想你可能想使用
self.definesPresentationContext = true
在根据此 post 呈现 UISearchController 的视图控制器中。它对我有用。
我正在展示嵌入在导航栏上的地雷。对我有用的代码是:
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
dispatch_async(dispatch_get_main_queue(), ^{
[self.searchController setActive:NO];
self.navigationController.navigationBar.topItem.title = @"MYTITLE".uppercaseString;
self.navigationItem.titleView = nil;
});
}
希望对大家有所帮助。
我在使用搜索和交互控制器时遇到了这个问题,只包含以下行后就解决了:
self.dismissViewControllerAnimated(假,完成:无)
在不更改委托的情况下打开交互并清除搜索。
SWIFT 4+
searchController.isActive = false
这一定是微不足道的,但我找不到您应该如何以编程方式关闭 UISearchController?
请注意,它是新的 UISearchController(于 2014 年推出 iOS 8),而不是 UISearchDisplayController。
到目前为止,这是我得到的
// Dismiss the search tableview
searchController.dismissViewControllerAnimated()
// Clear the Search bar text
searchController.active = false
但我还有取消按钮,无法摆脱它。
好的,经过更多测试后,您只需设置:
searchController.active = false
// or swift 4+
searchController.isActive = false
这是我尝试的第一件事,但我在一个 UISearchControllerDelegate 方法中调用了它,但它不起作用(可能应该用 dispatch_async 调用它(halbano 的回答似乎证实了这一点))。
无论如何,因为我在网上找不到那个答案,所以我正在回答我自己的问题,我希望它能帮助别人。
当您在转到另一个视图后尝试关闭搜索控制器时遇到过这个问题吗?我也遇到过这个问题。我想你可能想使用
self.definesPresentationContext = true
在根据此 post
我正在展示嵌入在导航栏上的地雷。对我有用的代码是:
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
dispatch_async(dispatch_get_main_queue(), ^{
[self.searchController setActive:NO];
self.navigationController.navigationBar.topItem.title = @"MYTITLE".uppercaseString;
self.navigationItem.titleView = nil;
});
}
希望对大家有所帮助。
我在使用搜索和交互控制器时遇到了这个问题,只包含以下行后就解决了: self.dismissViewControllerAnimated(假,完成:无)
在不更改委托的情况下打开交互并清除搜索。
SWIFT 4+
searchController.isActive = false