繁体   English   中英

UISearchDisplayController没有关闭[ios8,swift]

[英]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

请参阅UISearchDisplayController文档。

您的代码看起来正确,您可能需要拆开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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM