【发布时间】:2011-01-02 06:46:47
【问题描述】:
我在 UINavigationController 中有一个普通的 UITableViewController。前者包括连接到搜索显示控制器的搜索栏。我使用标准行为,即当用户输入任何字符时,搜索结果表视图会覆盖普通表视图。
现在,两个表视图都在导航控制器中运行。如果我从搜索结果表视图中选择一个项目,则会将一个新的 uitableviewcontroller(包含有关所选项目的特定信息)推送到导航堆栈上。当我点击那个控制器上的后退按钮时,我观察到一个奇怪的行为:普通表视图的部分标题覆盖了我的搜索结果表视图的部分标题。它们的显示就好像我的普通表格视图正在显示一样(我可以从标题之间的行数中看到,尽管这些行仍然是空的)。搜索结果表行仍在显示中。
这种行为来自我在 viewWillAppear 上重新加载表视图这一事实。我这样做是为了对用户在应用程序中的某个其他点所做的数据库更改或自动后台数据更新做出反应。如果最近显示的表格视图正在通过
显示,我已经尝试过轮询(self.tableView == self.searchDisplayController.searchResultsTableView)
但是在我返回到我的普通表视图控制器后,该语句总是错误的。
问题:如何轮询表格视图的正确状态以避免显示错误?
【问题讨论】:
标签: iphone objective-c uitableview uinavigationcontroller