[英]UISearchDisplayController is not dismissing [ios8, swift]
当用户按下范围选项之一时,我希望关闭UISearchDisplayController。 为此,我实现了以下代码,该代码似乎不起作用:
func searchBar(searchBar: UISearchBar!, selectedScopeButtonIndexDidChange selectedScope: Int) {
// Hide the search display
self.searchDisplayController.setActive(false, animated: true)
}
UISearchDisplayController会按预期执行,但会立即在顶部加载另一个UISearchDisplayController。 救命!
尝试在setActive
方法中使用NO
代替false
。
您的代码看起来正确,您可能需要拆开searchDisplayController
更改此行:
self.searchDisplayController.setActive(false, animated: true)
对此:
self.searchDisplayController!.setActive(false, animated: true)
但是,如果您没有遇到编译器错误,那不应该是您的问题。 在这种情况下,问题可能出在代码的其他地方。
我建议通过检查类声明来进行快速检查,以确认您的类已设置为UISearchBar和UISearchDisplay委托。
class myClass: UITableViewController, UISearchBarDelegate, UISearchDisplayDelegate { ... }
如果您未将课程设置为委托,则它将不会收到正确的消息。
您应该能够通过向日志输出内容来验证事件。
将此行添加到方法中进行验证:
println("scope button pressed")
如果您没有看到记录的事件,则说明该方法没有被调用。 您可以将重点放在用户界面上。
SearchDisplayController需要您的类文件的委托出口和引用出口,才能正常工作。
我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.