Swift 3 - 禁用和启用分段控制
Swift 3 - Disable & enable segmented control
我有两个 table 视图,我通过 select 分段控件在它们之间切换。我还有一个带有搜索栏的搜索控制器。当我 select 搜索栏时,应该禁用分段控件,这样您就无法 select 第二个 table 视图。当我点击搜索栏中的取消按钮时,应该再次激活分段控件。但这不起作用,分段控件保持禁用状态。
当我 select 一个 table 视图单元和 return 这个视图控制器时,分段控件再次启用。但我希望在按下取消按钮时启用它。
我的代码如下所示:
func deactivateSegment() {
segmentedController.setEnabled(false, forSegmentAt: 1)
}
func activateSegment() {
segmentedController.setEnabled(true, forSegmentAt: 1)
}
extension SegmentedTableController: UISearchResultsUpdating, UISearchBarDelegate {
func updateSearchResults(for searchController: UISearchController) {
deactivateSegment()
if searchController.searchBar.text != "" {
filterContentForSearchText(searchText: searchController.searchBar.text!)
} else {
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "update_view"), object: rumList, userInfo: nil)
}
}
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
KCFABManager.defaultInstance().hide()
deactivateSegment()
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
KCFABManager.defaultInstance().show()
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "update_view"), object: self.rumList, userInfo: nil)
activateSegment()
}
}
我也试过 segmentedController.isEnabled = false (&true)
和 segmentedController.isUserInteractionEnabled = false (&true)
但这也行不通。
我做错了什么?
删除updateSearchResults
的委托方法中的deactivateSegment()
func updateSearchResults(for searchController: UISearchController) {
// deactivateSegment()
if searchController.searchBar.text != "" {
其他喜欢
func updateSearchResults(for searchController: UISearchController) {
if searchController.searchBar.text != "" {
filterContentForSearchText(searchText: searchController.searchBar.text!)
activateSegment()
} else {
deactivateSegment()
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "update_view"), object: rumList, userInfo: nil)
}
}
我有两个 table 视图,我通过 select 分段控件在它们之间切换。我还有一个带有搜索栏的搜索控制器。当我 select 搜索栏时,应该禁用分段控件,这样您就无法 select 第二个 table 视图。当我点击搜索栏中的取消按钮时,应该再次激活分段控件。但这不起作用,分段控件保持禁用状态。 当我 select 一个 table 视图单元和 return 这个视图控制器时,分段控件再次启用。但我希望在按下取消按钮时启用它。 我的代码如下所示:
func deactivateSegment() {
segmentedController.setEnabled(false, forSegmentAt: 1)
}
func activateSegment() {
segmentedController.setEnabled(true, forSegmentAt: 1)
}
extension SegmentedTableController: UISearchResultsUpdating, UISearchBarDelegate {
func updateSearchResults(for searchController: UISearchController) {
deactivateSegment()
if searchController.searchBar.text != "" {
filterContentForSearchText(searchText: searchController.searchBar.text!)
} else {
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "update_view"), object: rumList, userInfo: nil)
}
}
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
KCFABManager.defaultInstance().hide()
deactivateSegment()
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
KCFABManager.defaultInstance().show()
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "update_view"), object: self.rumList, userInfo: nil)
activateSegment()
}
}
我也试过 segmentedController.isEnabled = false (&true)
和 segmentedController.isUserInteractionEnabled = false (&true)
但这也行不通。
我做错了什么?
删除updateSearchResults
deactivateSegment()
func updateSearchResults(for searchController: UISearchController) {
// deactivateSegment()
if searchController.searchBar.text != "" {
其他喜欢
func updateSearchResults(for searchController: UISearchController) {
if searchController.searchBar.text != "" {
filterContentForSearchText(searchText: searchController.searchBar.text!)
activateSegment()
} else {
deactivateSegment()
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "update_view"), object: rumList, userInfo: nil)
}
}