使用搜索栏 + 详细信息视图时部分标题搞砸了
Section Titles messed up when using search bar + detail view
我正在构建我的第一个应用程序,但遇到了困难。我的章节标题显示不正确。
- 我有一个带搜索栏的主视图 table 来过滤我的项目。
- 我的 table 视图中有部分
- 我有一个细节视图,以显示有关点击项目的更多细节。
一切正常。我可以使用搜索栏在主视图中过滤我的项目。部分仍然正确显示在搜索结果中。我还可以点击过滤后的搜索结果中的一项。详细信息 TableView 似乎显示了更多详细信息。美好的。
当我 return 我的主人 table 从详细视图查看时,过滤的项目出现在它们的部分下。但是 - 原始部分标题也出现(重叠),就好像列出了所有(未过滤的)项目一样。
我在显示详细信息之前发现 Table 查看主视图的
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String {
if tableView == self.searchDisplayController!.searchResultsTableView {
println("COOL")
} else {
println("Damn, it doesn't recognize that its filtered.")
}
...
}
函数触发并认为其 "tableView" 不再被过滤。
如果我不过滤并点击项目然后 return 到主视图,该应用程序将完美运行。
有人知道我做错了什么吗?
谢谢,
丹尼尔
这解决了问题。 "self.tableView.reloadData()" 导致此行为:
override func viewWillAppear(animated: Bool) {
// DO NOT UNCOMMENT THIS!!! IT BREAKS THE SEARCHING - WHEN I SEARCH AND
// THEN CLICK ON AN ITEM AND GO TO THE DETAIL VIEW CONTROLLER AND THEN GO
// BACK TO THE MAIN VIEW CONTROLLER THEN THE ORIGINAL SECTION HEADERS
// APPEAR ON TOP OF THE RESULTS VIEW.
// self.tableView.reloadData()
super.viewWillAppear(animated)
}
我正在构建我的第一个应用程序,但遇到了困难。我的章节标题显示不正确。
- 我有一个带搜索栏的主视图 table 来过滤我的项目。
- 我的 table 视图中有部分
- 我有一个细节视图,以显示有关点击项目的更多细节。
一切正常。我可以使用搜索栏在主视图中过滤我的项目。部分仍然正确显示在搜索结果中。我还可以点击过滤后的搜索结果中的一项。详细信息 TableView 似乎显示了更多详细信息。美好的。
当我 return 我的主人 table 从详细视图查看时,过滤的项目出现在它们的部分下。但是 - 原始部分标题也出现(重叠),就好像列出了所有(未过滤的)项目一样。
我在显示详细信息之前发现 Table 查看主视图的
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String {
if tableView == self.searchDisplayController!.searchResultsTableView {
println("COOL")
} else {
println("Damn, it doesn't recognize that its filtered.")
}
...
}
函数触发并认为其 "tableView" 不再被过滤。
如果我不过滤并点击项目然后 return 到主视图,该应用程序将完美运行。
有人知道我做错了什么吗?
谢谢, 丹尼尔
这解决了问题。 "self.tableView.reloadData()" 导致此行为:
override func viewWillAppear(animated: Bool) {
// DO NOT UNCOMMENT THIS!!! IT BREAKS THE SEARCHING - WHEN I SEARCH AND
// THEN CLICK ON AN ITEM AND GO TO THE DETAIL VIEW CONTROLLER AND THEN GO
// BACK TO THE MAIN VIEW CONTROLLER THEN THE ORIGINAL SECTION HEADERS
// APPEAR ON TOP OF THE RESULTS VIEW.
// self.tableView.reloadData()
super.viewWillAppear(animated)
}